Mercurial > pidgin
diff libpurple/prefs.c @ 26162:0a19fa42f8ce
propagate from branch 'im.pidgin.pidgin' (head eeaad582dcb34b6753c78371c4aa03af92b095f5)
to branch 'im.pidgin.soc.2008.yahoo' (head 182668e30410a6c12e970fad010f219ee6b59e73)
author | Sulabh Mahajan <sulabh@soc.pidgin.im> |
---|---|
date | Tue, 20 Jan 2009 17:44:36 +0000 |
parents | 7e2f27351358 |
children | 3687049b4faf |
line wrap: on
line diff
--- a/libpurple/prefs.c Tue Jan 20 17:11:35 2009 +0000 +++ b/libpurple/prefs.c Tue Jan 20 17:44:36 2009 +0000 @@ -693,12 +693,15 @@ char *name; GSList *l; - if(!pref || pref == &prefs) + if(!pref) return; while(pref->first_child) remove_pref(pref->first_child); + if(pref == &prefs) + return; + if(pref->parent->first_child == pref) { pref->parent->first_child = pref->sibling; } else { @@ -711,7 +714,8 @@ name = pref_full_name(pref); - purple_debug_info("prefs", "removing pref %s\n", name); + if (prefs_loaded) + purple_debug_info("prefs", "removing pref %s\n", name); g_hash_table_remove(prefs_hash, name); g_free(name); @@ -1451,5 +1455,9 @@ sync_prefs(); } - purple_prefs_disconnect_by_handle(purple_prefs_get_handle()); + prefs_loaded = FALSE; + purple_prefs_destroy(); + g_hash_table_destroy(prefs_hash); + prefs_hash = NULL; + }