Mercurial > pidgin
comparison 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 |
comparison
equal
deleted
inserted
replaced
980:82c5865f7cfe | 981:7e231bc0018a |
---|---|
406 (*gaim_plugin_remove)(); | 406 (*gaim_plugin_remove)(); |
407 | 407 |
408 gaim_plugin_unload(p->handle); | 408 gaim_plugin_unload(p->handle); |
409 } | 409 } |
410 | 410 |
411 static void remove_callback(struct gaim_plugin *p) { | |
412 gtk_timeout_remove(p->remove); | |
413 dlclose(p->handle); | |
414 g_free(p); | |
415 } | |
416 | |
417 /* gaim_plugin_unload serves 2 purposes: 1. so plugins can unload themselves | 411 /* gaim_plugin_unload serves 2 purposes: 1. so plugins can unload themselves |
418 * 2. to make my life easier */ | 412 * 2. to make my life easier */ |
419 void gaim_plugin_unload(void *handle) { | 413 void gaim_plugin_unload(void *handle) { |
420 GList *i; | 414 GList *i; |
421 struct gaim_plugin *p = NULL; | 415 struct gaim_plugin *p = NULL; |
454 } | 448 } |
455 } else { | 449 } else { |
456 c = g_list_next(c); | 450 c = g_list_next(c); |
457 } | 451 } |
458 } | 452 } |
459 /* remove callbacks later (this will g_free p) */ | |
460 p->remove = gtk_timeout_add(5000, (GtkFunction)remove_callback, p); | |
461 | 453 |
462 plugins = g_list_remove(plugins, p); | 454 plugins = g_list_remove(plugins, p); |
463 g_free(p->filename); | 455 g_free(p->filename); |
456 /* we don't dlclose(p->handle) in case if we still need code from the plugin later */ | |
457 g_free(p); | |
464 if (config) gtk_widget_set_sensitive(config, 0); | 458 if (config) gtk_widget_set_sensitive(config, 0); |
465 update_show_plugins(); | 459 update_show_plugins(); |
466 save_prefs(); | 460 save_prefs(); |
467 } | 461 } |
468 | 462 |
502 confighandle = 0; | 496 confighandle = 0; |
503 } | 497 } |
504 | 498 |
505 void gaim_signal_connect(void *handle, enum gaim_event which, | 499 void gaim_signal_connect(void *handle, enum gaim_event which, |
506 void *func, void *data) { | 500 void *func, void *data) { |
507 struct gaim_callback *call = g_malloc(sizeof *call); | 501 struct gaim_callback *call = g_new0(struct gaim_callback, 1); |
508 call->handle = handle; | 502 call->handle = handle; |
509 call->event = which; | 503 call->event = which; |
510 call->function = func; | 504 call->function = func; |
511 call->data = data; | 505 call->data = data; |
512 | 506 |