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 | |
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.
-rw-r--r-- | ChangeLog | 14 | ||||
-rw-r--r-- | libnautilus-extensions/nautilus-directory-metafile.c | 21 | ||||
-rw-r--r-- | libnautilus-extensions/nautilus-directory-metafile.h | 2 | ||||
-rw-r--r-- | libnautilus-extensions/nautilus-metafile.c | 2 | ||||
-rw-r--r-- | libnautilus-private/nautilus-directory-metafile.c | 21 | ||||
-rw-r--r-- | libnautilus-private/nautilus-directory-metafile.h | 2 | ||||
-rw-r--r-- | libnautilus-private/nautilus-metafile.c | 2 | ||||
-rw-r--r-- | src/nautilus-main.c | 2 |
8 files changed, 56 insertions, 10 deletions
@@ -1,3 +1,17 @@ +2001-02-13 Michael Engber <engber@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. + 2001-02-13 Robin * Slomkowski <rslomkow@rslomkow.org> * nautilus.spec.in: re-enabled building... diff --git a/libnautilus-extensions/nautilus-directory-metafile.c b/libnautilus-extensions/nautilus-directory-metafile.c index 09429e3d2..3f4b61ac8 100644 --- a/libnautilus-extensions/nautilus-directory-metafile.c +++ b/libnautilus-extensions/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; diff --git a/libnautilus-extensions/nautilus-directory-metafile.h b/libnautilus-extensions/nautilus-directory-metafile.h index cdf27758f..5faf3dd59 100644 --- a/libnautilus-extensions/nautilus-directory-metafile.h +++ b/libnautilus-extensions/nautilus-directory-metafile.h @@ -72,3 +72,5 @@ void nautilus_directory_remove_file_metadata (NautilusDirectory *d void nautilus_directory_rename_file_metadata (NautilusDirectory *directory, const char *old_file_name, const char *new_file_name); + +void nautilus_directory_use_self_contained_metafile_factory (void); diff --git a/libnautilus-extensions/nautilus-metafile.c b/libnautilus-extensions/nautilus-metafile.c index 2428e2496..de0216355 100644 --- a/libnautilus-extensions/nautilus-metafile.c +++ b/libnautilus-extensions/nautilus-metafile.c @@ -268,7 +268,7 @@ corba_get_list (PortableServer_Servant servant, /* We allocate our buffer with CORBA calls, so the caller will clean it * all up if we set release to TRUE. */ - CORBA_sequence_set_release (result, TRUE); + CORBA_sequence_set_release (result, CORBA_TRUE); buf_pos = 0; list_ptr = metadata_list; 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; diff --git a/libnautilus-private/nautilus-directory-metafile.h b/libnautilus-private/nautilus-directory-metafile.h index cdf27758f..5faf3dd59 100644 --- a/libnautilus-private/nautilus-directory-metafile.h +++ b/libnautilus-private/nautilus-directory-metafile.h @@ -72,3 +72,5 @@ void nautilus_directory_remove_file_metadata (NautilusDirectory *d void nautilus_directory_rename_file_metadata (NautilusDirectory *directory, const char *old_file_name, const char *new_file_name); + +void nautilus_directory_use_self_contained_metafile_factory (void); diff --git a/libnautilus-private/nautilus-metafile.c b/libnautilus-private/nautilus-metafile.c index 2428e2496..de0216355 100644 --- a/libnautilus-private/nautilus-metafile.c +++ b/libnautilus-private/nautilus-metafile.c @@ -268,7 +268,7 @@ corba_get_list (PortableServer_Servant servant, /* We allocate our buffer with CORBA calls, so the caller will clean it * all up if we set release to TRUE. */ - CORBA_sequence_set_release (result, TRUE); + CORBA_sequence_set_release (result, CORBA_TRUE); buf_pos = 0; list_ptr = metadata_list; diff --git a/src/nautilus-main.c b/src/nautilus-main.c index b138d8cdf..3df499c6b 100644 --- a/src/nautilus-main.c +++ b/src/nautilus-main.c @@ -47,6 +47,7 @@ #include <libnautilus-extensions/nautilus-global-preferences.h> #include <libnautilus-extensions/nautilus-lib-self-check-functions.h> #include <libnautilus-extensions/nautilus-self-checks.h> +#include <libnautilus-extensions/nautilus-directory-metafile.h> #include <liboaf/liboaf.h> #include <popt.h> #include <stdlib.h> @@ -248,6 +249,7 @@ main (int argc, char *argv[]) if (perform_self_check) { #ifndef NAUTILUS_OMIT_SELF_CHECK /* Run the checks for nautilus and libnautilus (each twice). */ + nautilus_directory_use_self_contained_metafile_factory (); nautilus_run_self_checks (); nautilus_run_lib_self_checks (); nautilus_exit_if_self_checks_failed (); |