From: Nicholas Clark Date: Thu, 10 Jan 2008 23:54:22 +0000 (+0000) Subject: Real regexps are stored via RVs, IVs can only mean spare slots. Hence X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=5c9f9c9cf9d963a25623abdc755b7d47402b5e74;p=p5sagit%2Fp5-mst-13.2.git Real regexps are stored via RVs, IVs can only mean spare slots. Hence it's safe to make the scalar undefined, rather than calling out to write a 0 that would also be interpreted as a NULL pointer. p4raw-id: //depot/perl@32943 --- diff --git a/op.c b/op.c index 34eb2e6..9410bf0 100644 --- a/op.c +++ b/op.c @@ -3370,7 +3370,7 @@ Perl_newPMOP(pTHX_ I32 type, I32 flags) SV * const repointer = av_pop((AV*)PL_regex_pad[0]); const IV offset = SvIV(repointer); pmop->op_pmoffset = offset; - sv_setiv(repointer,0); + SvOK_off(repointer); assert(repointer == PL_regex_pad[offset]); /* One reference remains, in PL_regex_pad[offset] */ SvREFCNT_dec(repointer);