| 422 destroy_timeout_handler(timeout_handlers->data); |
422 destroy_timeout_handler(timeout_handlers->data); |
| 423 } |
423 } |
| 424 |
424 |
| 425 void |
425 void |
| 426 gaim_perl_signal_connect(GaimPlugin *plugin, void *instance, |
426 gaim_perl_signal_connect(GaimPlugin *plugin, void *instance, |
| 427 const char *signal, SV *callback, SV *data) |
427 const char *signal, SV *callback, SV *data, |
| |
428 int priority) |
| 428 { |
429 { |
| 429 GaimPerlSignalHandler *handler; |
430 GaimPerlSignalHandler *handler; |
| 430 |
431 |
| 431 handler = g_new0(GaimPerlSignalHandler, 1); |
432 handler = g_new0(GaimPerlSignalHandler, 1); |
| 432 handler->plugin = plugin; |
433 handler->plugin = plugin; |
| 438 handler->data = (data != NULL && |
439 handler->data = (data != NULL && |
| 439 data != &PL_sv_undef ? newSVsv(data) : NULL); |
440 data != &PL_sv_undef ? newSVsv(data) : NULL); |
| 440 |
441 |
| 441 signal_handlers = g_list_append(signal_handlers, handler); |
442 signal_handlers = g_list_append(signal_handlers, handler); |
| 442 |
443 |
| 443 gaim_signal_connect_vargs(instance, signal, plugin, |
444 gaim_signal_connect_priority_vargs(instance, signal, plugin, |
| 444 GAIM_CALLBACK(perl_signal_cb), handler); |
445 GAIM_CALLBACK(perl_signal_cb), |
| |
446 handler, priority); |
| 445 } |
447 } |
| 446 |
448 |
| 447 void |
449 void |
| 448 gaim_perl_signal_disconnect(GaimPlugin *plugin, void *instance, |
450 gaim_perl_signal_disconnect(GaimPlugin *plugin, void *instance, |
| 449 const char *signal) |
451 const char *signal) |