comparison src/core.c @ 9633:81b31af2752d

[gaim-migrate @ 10477] [ gaim-Bugs-847795 ] HTML log files not closed properly on exit The fix is twofold. First, make gaim_conversations_uninit, destroy conversation windows. Second, reorder things in core_quit, to keep plugins loaded until the end and to keep the gtk main loop from quitting until after everything else is uninitialized. committer: Tailor Script <tailor@pidgin.im>
author Sean Egan <seanegan@gmail.com>
date Sun, 01 Aug 2004 17:12:13 +0000
parents f24172f53650
children ce434e22edf2
comparison
equal deleted inserted replaced
9632:885bba4f9d3b 9633:81b31af2752d
109 109
110 g_return_if_fail(core != NULL); 110 g_return_if_fail(core != NULL);
111 111
112 ops = gaim_core_get_ui_ops(); 112 ops = gaim_core_get_ui_ops();
113 113
114 if (ops != NULL && ops->quit != NULL)
115 ops->quit();
116
117 /* The self destruct sequence has been initiated */ 114 /* The self destruct sequence has been initiated */
118 gaim_signal_emit(gaim_get_core(), "quitting"); 115 gaim_signal_emit(gaim_get_core(), "quitting");
119 116
120 /* Transmission ends */ 117 /* Transmission ends */
121 gaim_connections_disconnect_all(); 118 gaim_connections_disconnect_all();
122 119
123 gaim_debug(GAIM_DEBUG_INFO, "main", "Unloading all plugins\n"); 120 gaim_debug(GAIM_DEBUG_INFO, "main", "Unloading all plugins\n");
124 gaim_plugins_destroy_all();
125 121
126 /* Save .xml files, remove signals, etc. */ 122 /* Save .xml files, remove signals, etc. */
127 gaim_ssl_uninit(); 123 gaim_ssl_uninit();
128 gaim_pounces_uninit(); 124 gaim_pounces_uninit();
129 gaim_blist_uninit(); 125 gaim_blist_uninit();
133 gaim_accounts_uninit(); 129 gaim_accounts_uninit();
134 gaim_prefs_uninit(); 130 gaim_prefs_uninit();
135 131
136 gaim_signals_uninit(); 132 gaim_signals_uninit();
137 133
134 gaim_plugins_destroy_all();
135
138 if (core->ui != NULL) { 136 if (core->ui != NULL) {
139 g_free(core->ui); 137 g_free(core->ui);
140 core->ui = NULL; 138 core->ui = NULL;
141 } 139 }
142 140
143 g_free(core); 141 g_free(core);
144 142
145 _core = NULL; 143 _core = NULL;
144
145 if (ops != NULL && ops->quit != NULL)
146 ops->quit();
147
146 } 148 }
147 149
148 gboolean 150 gboolean
149 gaim_core_quit_cb(gpointer unused) 151 gaim_core_quit_cb(gpointer unused)
150 { 152 {