diff src/plugins.c @ 981:7e231bc0018a

[gaim-migrate @ 991] I think I need a Pepsi. committer: Tailor Script <tailor@pidgin.im>
author Eric Warmenhoven <eric@warmenhoven.org>
date Fri, 13 Oct 2000 07:24:40 +0000
parents 9eb07b383df4
children 91b7377e7b45
line wrap: on
line diff
--- a/src/plugins.c	Thu Oct 12 18:59:36 2000 +0000
+++ b/src/plugins.c	Fri Oct 13 07:24:40 2000 +0000
@@ -408,12 +408,6 @@
 	gaim_plugin_unload(p->handle);
 }
 
-static void remove_callback(struct gaim_plugin *p) {
-	gtk_timeout_remove(p->remove);
-	dlclose(p->handle);
-	g_free(p);
-}
-
 /* gaim_plugin_unload serves 2 purposes: 1. so plugins can unload themselves
  * 					 2. to make my life easier */
 void gaim_plugin_unload(void *handle) {
@@ -456,11 +450,11 @@
 			c = g_list_next(c);
 		}
 	}
-	/* remove callbacks later (this will g_free p) */
-	p->remove = gtk_timeout_add(5000, (GtkFunction)remove_callback, p);
 
 	plugins = g_list_remove(plugins, p);
 	g_free(p->filename);
+	/* we don't dlclose(p->handle) in case if we still need code from the plugin later */
+	g_free(p);
 	if (config) gtk_widget_set_sensitive(config, 0);
 	update_show_plugins();
 	save_prefs();
@@ -504,7 +498,7 @@
 
 void gaim_signal_connect(void *handle, enum gaim_event which,
 			 void *func, void *data) {
-	struct gaim_callback *call = g_malloc(sizeof *call);
+	struct gaim_callback *call = g_new0(struct gaim_callback, 1);
 	call->handle = handle;
 	call->event = which;
 	call->function = func;