Mercurial > pidgin.yaz
comparison libpurple/core.c @ 26611:8a0797f40695
Apply patch from darkrain42 to fix the crash-on-exit. Hopefully, the order
of shutdown is no longer broken now.
Fixes #8774.
author | Elliott Sales de Andrade <qulogic@pidgin.im> |
---|---|
date | Fri, 10 Apr 2009 05:57:23 +0000 |
parents | 6b0c6a370cda |
children | e07c066b3172 |
comparison
equal
deleted
inserted
replaced
26610:bd61f91e669a | 26611:8a0797f40695 |
---|---|
214 purple_certificate_uninit(); | 214 purple_certificate_uninit(); |
215 | 215 |
216 /* The SSL plugins must be uninit before they're unloaded */ | 216 /* The SSL plugins must be uninit before they're unloaded */ |
217 purple_ssl_uninit(); | 217 purple_ssl_uninit(); |
218 | 218 |
219 /* Unload all plugins before the UI because UI plugins might call | 219 /* Unload all non-loader, non-prpl plugins before shutting down |
220 * UI-specific functions */ | 220 * subsystems. */ |
221 purple_debug_info("main", "Unloading all plugins\n"); | 221 purple_debug_info("main", "Unloading normal plugins\n"); |
222 purple_plugins_destroy_all(); | 222 purple_plugins_unload(PURPLE_PLUGIN_STANDARD); |
223 | |
224 /* Shut down the UI before all the subsystems */ | |
225 ops = purple_core_get_ui_ops(); | |
226 if (ops != NULL && ops->quit != NULL) | |
227 ops->quit(); | |
228 | 223 |
229 /* Save .xml files, remove signals, etc. */ | 224 /* Save .xml files, remove signals, etc. */ |
230 purple_smileys_uninit(); | 225 purple_smileys_uninit(); |
231 purple_idle_uninit(); | 226 purple_idle_uninit(); |
232 purple_pounces_uninit(); | 227 purple_pounces_uninit(); |
245 purple_proxy_uninit(); | 240 purple_proxy_uninit(); |
246 purple_dnsquery_uninit(); | 241 purple_dnsquery_uninit(); |
247 purple_imgstore_uninit(); | 242 purple_imgstore_uninit(); |
248 purple_network_uninit(); | 243 purple_network_uninit(); |
249 | 244 |
250 /* Everything after this must not try to read any prefs */ | 245 /* Everything after unloading all plugins must not fail if prpls aren't |
246 * around */ | |
247 purple_debug_info("main", "Unloading all plugins\n"); | |
248 purple_plugins_destroy_all(); | |
249 | |
250 ops = purple_core_get_ui_ops(); | |
251 if (ops != NULL && ops->quit != NULL) | |
252 ops->quit(); | |
253 | |
254 /* Everything after prefs_uninit must not try to read any prefs */ | |
251 purple_prefs_uninit(); | 255 purple_prefs_uninit(); |
252 purple_plugins_uninit(); | 256 purple_plugins_uninit(); |
253 #ifdef HAVE_DBUS | 257 #ifdef HAVE_DBUS |
254 purple_dbus_uninit(); | 258 purple_dbus_uninit(); |
255 #endif | 259 #endif |
256 | 260 |
257 purple_cmds_uninit(); | 261 purple_cmds_uninit(); |
258 /* Everything after this cannot try to write things to the confdir */ | 262 /* Everything after util_uninit cannot try to write things to the confdir */ |
259 purple_util_uninit(); | 263 purple_util_uninit(); |
260 purple_log_uninit(); | 264 purple_log_uninit(); |
261 | 265 |
262 purple_signals_uninit(); | 266 purple_signals_uninit(); |
263 | 267 |