1
0
mirror of https://github.com/irssi/irssi.git synced 2024-10-20 05:13:37 -04:00

support for threaded perl. patch by mls@suse.de

git-svn-id: http://svn.irssi.org/repos/irssi/trunk@2930 dbcabf3a-b0e7-0310-adc4-f8d773084564
This commit is contained in:
Timo Sirainen 2002-09-19 14:30:10 +00:00 committed by cras
parent fe73785c7a
commit f31b59b48b
3 changed files with 10 additions and 6 deletions

View File

@ -219,12 +219,12 @@ char *perl_get_use_list(void)
return ret;
}
void irssi_callXS(void (*subaddr)(CV* cv), CV *cv, SV **mark)
void irssi_callXS(void (*subaddr)(pTHX_ CV* cv), CV *cv, SV **mark)
{
dSP;
PUSHMARK(mark);
(*subaddr)(cv);
(*subaddr)(aTHX_ cv);
PUTBACK;
}

View File

@ -32,6 +32,10 @@ SV *perl_func_sv_inc(SV *func, const char *package);
extern STRLEN PL_na;
#endif
#ifndef pTHX_
# define pTHX_
#endif
#define iobject_bless(object) \
((object) == NULL ? &PL_sv_undef : \
irssi_bless_iobject((object)->type, (object)->chat_type, object))
@ -57,10 +61,10 @@ void irssi_add_plains(PLAIN_OBJECT_INIT_REC *objects);
char *perl_get_use_list(void);
#define irssi_boot(x) { \
extern void boot_Irssi__##x(CV *cv); \
extern void boot_Irssi__##x(pTHX_ CV *cv); \
irssi_callXS(boot_Irssi__##x, cv, mark); \
}
void irssi_callXS(void (*subaddr)(CV* cv), CV *cv, SV **mark);
void irssi_callXS(void (*subaddr)(pTHX_ CV* cv), CV *cv, SV **mark);
void perl_common_start(void);
void perl_common_stop(void);

View File

@ -84,7 +84,7 @@ static void perl_script_destroy(PERL_SCRIPT_REC *script)
g_free(script);
}
extern void boot_DynaLoader(CV* cv);
extern void boot_DynaLoader(pTHX_ CV* cv);
#if PERL_STATIC_LIBS == 1
extern void boot_Irssi(CV *cv);
@ -101,7 +101,7 @@ XS(boot_Irssi_Core)
}
#endif
static void xs_init(void)
static void xs_init(pTHX)
{
dXSUB_SYS;