summaryrefslogtreecommitdiff
path: root/gconf/gconfd.c
diff options
context:
space:
mode:
authorHavoc Pennington <hp@redhat.com>2000-08-30 21:53:21 +0000
committerHavoc Pennington <hp@src.gnome.org>2000-08-30 21:53:21 +0000
commit8caf3908db78901e98609ed58094a1de2f982c25 (patch)
tree8e4000e6c2a2065f36d8b7eec9f414eb73ea42cc /gconf/gconfd.c
parent5deb5e173b0d77a18837941fe79e00d2ac0890ec (diff)
downloadgconf-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.c30
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,