summaryrefslogtreecommitdiff
path: root/os2
diff options
context:
space:
mode:
authorVincent Pit <perl@profvince.com>2008-01-03 20:26:05 +0100
committerMarcus Holland-Moritz <mhx-perl@gmx.net>2008-01-04 01:22:22 +0000
commit22f1178fc6ea7d78b2fce6108796ec629a70476b (patch)
treedb1b5b4ee2350f41eef0952ef108e64f43f5641b /os2
parent6e449a3ab1e3bd9d7e138ca681c733e57d4daa49 (diff)
downloadperl-22f1178fc6ea7d78b2fce6108796ec629a70476b.tar.gz
Re: SV leak?
Message-ID: <477D28BD.5060801@profvince.com> Mortalize SVs that are being pushed on the stack. Try to use specialized macros for pushing mortals. p4raw-id: //depot/perl@32822
Diffstat (limited to 'os2')
-rw-r--r--os2/os2.c18
1 files changed, 9 insertions, 9 deletions
diff --git a/os2/os2.c b/os2/os2.c
index 5c05df59b9..4ebdd509a9 100644
--- a/os2/os2.c
+++ b/os2/os2.c
@@ -4360,10 +4360,10 @@ XS(XS_OS2_pipeCntl)
&PipeState), "DosPeekNPipe() for state");
if (state) {
EXTEND(SP, 3);
- PUSHs(newSVuv(PipeState));
+ mPUSHu(PipeState);
/* Bytes (available/in-message) */
- PUSHs(newSViv(BytesAvail.cbpipe));
- PUSHs(newSViv(BytesAvail.cbmessage));
+ mPUSHi(BytesAvail.cbpipe);
+ mPUSHi(BytesAvail.cbmessage);
XSRETURN(3);
} else if (info) {
/* L S S C C C/Z*
@@ -4390,12 +4390,12 @@ XS(XS_OS2_pipeCntl)
else
size = strlen(b.pInfo.szName);
EXTEND(SP, 6);
- PUSHs(newSVpvn(b.pInfo.szName, size));
- PUSHs(newSVuv(b.id));
- PUSHs(newSViv(b.pInfo.cbOut));
- PUSHs(newSViv(b.pInfo.cbIn));
- PUSHs(newSViv(b.pInfo.cbMaxInst));
- PUSHs(newSViv(b.pInfo.cbCurInst));
+ mPUSHp(b.pInfo.szName, size);
+ mPUSHu(b.id);
+ mPUSHi(b.pInfo.cbOut);
+ mPUSHi(b.pInfo.cbIn);
+ mPUSHi(b.pInfo.cbMaxInst);
+ mPUSHi(b.pInfo.cbCurInst);
XSRETURN(6);
} else if (BytesAvail.cbpipe == 0) {
XSRETURN_NO;