diff options
author | Havoc Pennington <hp@redhat.com> | 2000-08-30 21:53:21 +0000 |
---|---|---|
committer | Havoc Pennington <hp@src.gnome.org> | 2000-08-30 21:53:21 +0000 |
commit | 8caf3908db78901e98609ed58094a1de2f982c25 (patch) | |
tree | 8e4000e6c2a2065f36d8b7eec9f414eb73ea42cc /gconf/gconfd.c | |
parent | 5deb5e173b0d77a18837941fe79e00d2ac0890ec (diff) | |
download | gconf-8caf3908db78901e98609ed58094a1de2f982c25.tar.gz |
Change client to new system (use object references to ConfigDatabase
2000-08-30 Havoc Pennington <hp@redhat.com>
* gconf/gconf.c: Change client to new system (use object
references to ConfigDatabase instead of the integer context ID).
* gconf/gconf-backend.c: Fix path to uninstalled modules, and
put the whole uninstalled modules thing in GCONF_ENABLE_DEBUG
* gconf/gconf-database.c: add some missing includes, and fix
a typo bug
* gconf/gconfd.c: CORBA_Object_duplicate() the ConfigDatabase
objrefs before passing them back out to ORBit. Remove
some bogus assertions.
* TODO: Updates, added notes from Colm
Diffstat (limited to 'gconf/gconfd.c')
-rw-r--r-- | gconf/gconfd.c | 30 |
1 files changed, 17 insertions, 13 deletions
diff --git a/gconf/gconfd.c b/gconf/gconfd.c index 2f3f2b80..cafc3b49 100644 --- a/gconf/gconfd.c +++ b/gconf/gconfd.c @@ -165,7 +165,7 @@ gconfd_get_default_database(PortableServer_Servant servant, db = lookup_database (NULL); if (db) - return db->objref; + return CORBA_Object_duplicate (db->objref, ev); else return CORBA_OBJECT_NIL; } @@ -181,7 +181,7 @@ gconfd_get_database(PortableServer_Servant servant, db = obtain_database (address, &error); if (db != NULL) - return db->objref; + return CORBA_Object_duplicate (db->objref, ev); else if (gconf_set_exception(&error, ev)) return CORBA_OBJECT_NIL; else @@ -575,9 +575,6 @@ init_databases (void) static void set_default_database (GConfDatabase* db) { - g_assert(db_list != NULL); - g_assert(dbs_by_address != NULL); - default_db = db; /* Default database isn't in the address hash since it has @@ -659,8 +656,6 @@ drop_old_databases(void) GList *dead = NULL; GTime now; - g_assert(db_list != NULL); - now = time(NULL); tmp_list = db_list; @@ -694,11 +689,11 @@ drop_old_databases(void) static void shutdown_databases (void) { - GList *tmp_list; - - if (db_list == NULL) - return; /* Can happen if we get a signal before creating it */ + GList *tmp_list; + /* This may be called before we init fully, + so check that everything != NULL */ + tmp_list = db_list; while (tmp_list) @@ -713,11 +708,13 @@ shutdown_databases (void) g_list_free (db_list); db_list = NULL; - g_hash_table_destroy(dbs_by_address); + if (dbs_by_address) + g_hash_table_destroy(dbs_by_address); dbs_by_address = NULL; - gconf_database_destroy (default_db); + if (default_db) + gconf_database_destroy (default_db); } /* @@ -901,6 +898,7 @@ restore_listener (GConfDatabase* db, ConfigListener cl; CORBA_Environment ev; guint new_cnxn; + gchar *address; if (strcmp (node->name, "listener") != 0) { @@ -953,8 +951,14 @@ restore_listener (GConfDatabase* db, new_cnxn = gconf_database_add_listener(db, cl, location); + if (db == default_db) + address = "def"; /* cheesy hack */ + else + address = ((GConfSource*)db->sources->sources->data)->address; + ConfigListener_update_listener (cl, db->objref, + address, atoi (cnxn), location, new_cnxn, |