summaryrefslogtreecommitdiff
path: root/src/perl/common/Core.xs
diff options
context:
space:
mode:
authorTimo Sirainen <cras@irssi.org>2000-12-29 19:22:00 +0000
committercras <cras@dbcabf3a-b0e7-0310-adc4-f8d773084564>2000-12-29 19:22:00 +0000
commite50535a64e5a09066af9f10a2ac7177726502b1b (patch)
tree69b7734f5c7fd416186734c7de6f6fcbb97925a8 /src/perl/common/Core.xs
parent84d672ee42778f4c92f577bfdf89c48d77ce3656 (diff)
downloadirssi-e50535a64e5a09066af9f10a2ac7177726502b1b.zip
Irssi::signal_emit() was broken.
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@1027 dbcabf3a-b0e7-0310-adc4-f8d773084564
Diffstat (limited to 'src/perl/common/Core.xs')
-rw-r--r--src/perl/common/Core.xs7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/perl/common/Core.xs b/src/perl/common/Core.xs
index cef0ff24..1f8993e9 100644
--- a/src/perl/common/Core.xs
+++ b/src/perl/common/Core.xs
@@ -11,7 +11,12 @@ CODE:
memset(p, 0, sizeof(p));
for (n = 1; n < items && n < 7; n++) {
- p[n-1] = SvPOKp(ST(n)) ? SvPV(ST(n), n_a) : (void *) SvIV((SV*)SvRV(ST(n)));
+ if (SvPOKp(ST(n)))
+ p[n-1] = SvPV(ST(n), n_a);
+ else if (irssi_is_ref_object(ST(n)))
+ p[n-1] = irssi_ref_object(ST(n));
+ else
+ p[n-1] = (void *) SvIV((SV*)SvRV(ST(n)));
}
signal_emit(signal, items-1, p[0], p[1], p[2], p[3], p[4], p[5], p[6]);