diff options
author | Mike Engber <engber@src.gnome.org> | 2001-02-13 20:20:22 +0000 |
---|---|---|
committer | Mike Engber <engber@src.gnome.org> | 2001-02-13 20:20:22 +0000 |
commit | 8bb8b5e45e32210b62e0e6eef4a7eff134a5893b (patch) | |
tree | e9f5c402cf5aa7e4cd7f162ba8c5fca96d7a5962 /libnautilus-private/nautilus-directory-metafile.c | |
parent | 86bc82fbe439d9dbbf76c5188c00a7e997f5d80a (diff) | |
download | nautilus-8bb8b5e45e32210b62e0e6eef4a7eff134a5893b.tar.gz |
reviewed by: Darin Adler <darin@eazel.com>
reviewed by: Darin Adler <darin@eazel.com>
* libnautilus-extensions/nautilus-directory-metafile.c:
(nautilus_directory_use_self_contained_metatfile_factory),
(get_metafile), (nautilus_directory_set_file_metadata_list):
* libnautilus-extensions/nautilus-directory-metafile.h:
* libnautilus-extensions/nautilus-metafile.c: (destroy),
(corba_get_list):
* src/nautilus-main.c: (main):
The metafile code now circumvents oaf when nautilus is performing
a self check - bug 6552.
Diffstat (limited to 'libnautilus-private/nautilus-directory-metafile.c')
-rw-r--r-- | libnautilus-private/nautilus-directory-metafile.c | 21 |
1 files changed, 17 insertions, 4 deletions
diff --git a/libnautilus-private/nautilus-directory-metafile.c b/libnautilus-private/nautilus-directory-metafile.c index 09429e3d2..3f4b61ac8 100644 --- a/libnautilus-private/nautilus-directory-metafile.c +++ b/libnautilus-private/nautilus-directory-metafile.c @@ -28,8 +28,6 @@ #include <libnautilus-extensions/nautilus-metafile-server.h> #include <libnautilus-extensions/nautilus-string.h> -/* we only include this to get METAFILE_FACTORY_IID - */ #include <libnautilus-extensions/nautilus-metafile-factory.h> #include <liboaf/liboaf.h> @@ -48,14 +46,29 @@ free_factory (void) CORBA_exception_free (&ev); } +static gboolean get_factory_from_oaf = TRUE; + +void +nautilus_directory_use_self_contained_metafile_factory (void) +{ + get_factory_from_oaf = FALSE; +} + static Nautilus_Metafile get_metafile (NautilusDirectory *directory, CORBA_Environment *ev) { char * uri; Nautilus_Metafile metafile; + NautilusMetafileFactory *instance; if (CORBA_Object_is_nil (the_factory, ev)) { - the_factory = oaf_activate_from_id (METAFILE_FACTORY_IID, 0, NULL, NULL); + if (get_factory_from_oaf) { + the_factory = oaf_activate_from_id (METAFILE_FACTORY_IID, 0, NULL, NULL); + } else { + instance = nautilus_metafile_factory_get_instance (); + the_factory = bonobo_object_dup_ref (bonobo_object_corba_objref (BONOBO_OBJECT (instance)), ev); + bonobo_object_unref (BONOBO_OBJECT (instance)); + } g_atexit (free_factory); } @@ -215,7 +228,7 @@ nautilus_directory_set_file_metadata_list (NautilusDirectory *directory, /* We allocate our buffer with CORBA calls, so CORBA_free will clean it * all up if we set release to TRUE. */ - CORBA_sequence_set_release (list, TRUE); + CORBA_sequence_set_release (list, CORBA_TRUE); buf_pos = 0; list_ptr = list; |