summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/perl/perl-common.c4
-rw-r--r--src/perl/perl-common.h8
-rw-r--r--src/perl/perl-core.c4
3 files changed, 10 insertions, 6 deletions
diff --git a/src/perl/perl-common.c b/src/perl/perl-common.c
index a3a599ac..cad117fc 100644
--- a/src/perl/perl-common.c
+++ b/src/perl/perl-common.c
@@ -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;
}
diff --git a/src/perl/perl-common.h b/src/perl/perl-common.h
index 9fa85f07..50469942 100644
--- a/src/perl/perl-common.h
+++ b/src/perl/perl-common.h
@@ -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);
diff --git a/src/perl/perl-core.c b/src/perl/perl-core.c
index 0c1e506b..2d300289 100644
--- a/src/perl/perl-core.c
+++ b/src/perl/perl-core.c
@@ -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;