Mercurial > pidgin.yaz
changeset 24867:60ae522a239a
Rearrange prefs uninitialization now that it actually does something.
This should prevent an infinite loop that occurs when trying to debug after
prefs are uninit'd. Paul Aurich figured this out.
Fixes #7761
author | Daniel Atallah <daniel.atallah@gmail.com> |
---|---|
date | Sat, 03 Jan 2009 18:37:37 +0000 |
parents | fec1e38cb330 |
children | 1563f269a714 6267675cbc1d |
files | libpurple/core.c libpurple/prefs.c |
diffstat | 2 files changed, 5 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/libpurple/core.c Fri Jan 02 22:41:11 2009 +0000 +++ b/libpurple/core.c Sat Jan 03 18:37:37 2009 +0000 @@ -137,7 +137,7 @@ * subsystem right away too. */ purple_plugins_init(); - + /* Initialize all static protocols. */ static_proto_init(); @@ -213,7 +213,6 @@ purple_accounts_uninit(); purple_savedstatuses_uninit(); purple_status_uninit(); - purple_prefs_uninit(); purple_sound_uninit(); purple_xfers_uninit(); purple_proxy_uninit(); @@ -244,6 +243,7 @@ #ifdef _WIN32 wpurple_cleanup(); #endif + purple_prefs_uninit(); _core = NULL; }
--- a/libpurple/prefs.c Fri Jan 02 22:41:11 2009 +0000 +++ b/libpurple/prefs.c Sat Jan 03 18:37:37 2009 +0000 @@ -714,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); @@ -1453,7 +1454,7 @@ save_timer = 0; sync_prefs(); } - + prefs_loaded = FALSE; purple_prefs_disconnect_by_handle(purple_prefs_get_handle()); purple_prefs_destroy(); g_hash_table_destroy(prefs_hash);