summaryrefslogtreecommitdiff
path: root/perl.c
diff options
context:
space:
mode:
authorJoshua Pritikin <joshua.pritikin@db.com>1998-07-01 06:09:43 -0400
committerGurusamy Sarathy <gsar@cpan.org>1998-07-04 05:52:34 +0000
commitd689ffdd6d1d8fd913b48f3cb3a376bd99e0a6cf (patch)
tree4149cdb70a157cfb0f43ffc2910a0da15c42f486 /perl.c
parent8fb9a439a71a5e6b7adf7c46052298d23dd9cab7 (diff)
downloadperl-d689ffdd6d1d8fd913b48f3cb3a376bd99e0a6cf.tar.gz
fixes for mortalization bug in xsubpp, other efficiency tweaks
Message-Id: <H00000e500086fb3@MHS> Subject: [PATCH _69] sv_2mortal fix p4raw-id: //depot/perl@1306
Diffstat (limited to 'perl.c')
-rw-r--r--perl.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/perl.c b/perl.c
index e2db42c84b..7be4185cc8 100644
--- a/perl.c
+++ b/perl.c
@@ -147,15 +147,21 @@ perl_construct(register PerlInterpreter *sv_interp)
sv_upgrade(linestr,SVt_PVIV);
if (!SvREADONLY(&sv_undef)) {
+ /* set read-only and try to insure than we wont see REFCNT==0
+ very often */
+
SvREADONLY_on(&sv_undef);
+ SvREFCNT(&sv_undef) = (~(U32)0)/2;
sv_setpv(&sv_no,No);
SvNV(&sv_no);
SvREADONLY_on(&sv_no);
+ SvREFCNT(&sv_no) = (~(U32)0)/2;
sv_setpv(&sv_yes,Yes);
SvNV(&sv_yes);
SvREADONLY_on(&sv_yes);
+ SvREFCNT(&sv_yes) = (~(U32)0)/2;
}
nrs = newSVpv("\n", 1);