summaryrefslogtreecommitdiff
path: root/libnautilus-private/nautilus-directory-metafile.c
diff options
context:
space:
mode:
authorMike Engber <engber@src.gnome.org>2001-02-13 20:20:22 +0000
committerMike Engber <engber@src.gnome.org>2001-02-13 20:20:22 +0000
commit8bb8b5e45e32210b62e0e6eef4a7eff134a5893b (patch)
treee9f5c402cf5aa7e4cd7f162ba8c5fca96d7a5962 /libnautilus-private/nautilus-directory-metafile.c
parent86bc82fbe439d9dbbf76c5188c00a7e997f5d80a (diff)
downloadnautilus-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.c21
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;