Mercurial > pidgin
view plugins/perl/perl-common.h @ 9578:7cd7da72c872
[gaim-migrate @ 10421]
Fix a pretty good-sized problem that deryni pointed out in the Perl plugin.
Basically, if a script didn't have an unload function set, the data,
signals, timeouts, commands, etc. was remaining after the plugin was
unloaded. This should be fixed now, barring any bizarre bugs that result
from the simple change.
committer: Tailor Script <tailor@pidgin.im>
author | Christian Hammond <chipx86@chipx86.com> |
---|---|
date | Fri, 23 Jul 2004 00:12:55 +0000 |
parents | 11d05ddf30a3 |
children | 0e9e2b923d09 |
line wrap: on
line source
#ifndef _GAIM_PERL_COMMON_H_ #define _GAIM_PERL_COMMON_H_ #include <glib.h> #ifdef _WIN32 #undef pipe #endif #include <XSUB.h> #include <EXTERN.h> #include <perl.h> #include "value.h" #define is_hvref(o) \ ((o) && SvROK(o) && SvRV(o) && (SvTYPE(SvRV(o)) == SVt_PVHV)) #define hvref(o) \ (is_hvref(o) ? (HV *)SvRV(o) : NULL); #define GAIM_PERL_BOOT(x) \ { \ extern void boot_Gaim__##x(pTHX_ CV *cv); \ gaim_perl_callXS(boot_Gaim__##x, cv, mark); \ } SV *newSVGChar(const char *str); void gaim_perl_callXS(void (*subaddr)(pTHX_ CV *cv), CV *cv, SV **mark); void gaim_perl_bless_plain(const char *stash, void *object); SV *gaim_perl_bless_object(void *object, const char *stash); gboolean gaim_perl_is_ref_object(SV *o); void *gaim_perl_ref_object(SV *o); int execute_perl(const char *function, int argc, char **args); #if 0 gboolean gaim_perl_value_from_sv(GaimValue *value, SV *sv); SV *gaim_perl_sv_from_value(const GaimValue *value); #endif void *gaim_perl_data_from_sv(GaimValue *value, SV *sv); SV *gaim_perl_sv_from_vargs(const GaimValue *value, va_list *args, void ***copy_arg); #endif /* _GAIM_PERL_COMMON_H_ */