diff options
author | Vincent Pit <perl@profvince.com> | 2008-01-03 20:26:05 +0100 |
---|---|---|
committer | Marcus Holland-Moritz <mhx-perl@gmx.net> | 2008-01-04 01:22:22 +0000 |
commit | 22f1178fc6ea7d78b2fce6108796ec629a70476b (patch) | |
tree | db1b5b4ee2350f41eef0952ef108e64f43f5641b /os2 | |
parent | 6e449a3ab1e3bd9d7e138ca681c733e57d4daa49 (diff) | |
download | perl-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.c | 18 |
1 files changed, 9 insertions, 9 deletions
@@ -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; |