src/core.c

changeset 9633
52d87acba1d1
parent 8273
7882af5843e9
child 9649
c73921e0e7a0
equal deleted inserted replaced
9632:e295aa712589 9633:52d87acba1d1
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 {

mercurial