summaryrefslogtreecommitdiff
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
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.
-rw-r--r--ChangeLog14
-rw-r--r--libnautilus-extensions/nautilus-directory-metafile.c21
-rw-r--r--libnautilus-extensions/nautilus-directory-metafile.h2
-rw-r--r--libnautilus-extensions/nautilus-metafile.c2
-rw-r--r--libnautilus-private/nautilus-directory-metafile.c21
-rw-r--r--libnautilus-private/nautilus-directory-metafile.h2
-rw-r--r--libnautilus-private/nautilus-metafile.c2
-rw-r--r--src/nautilus-main.c2
8 files changed, 56 insertions, 10 deletions
diff --git a/ChangeLog b/ChangeLog
index a71416eef..d93b195ff 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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 ();