Change 32943 by [EMAIL PROTECTED] on 2008/01/10 23:54:22
Real regexps are stored via RVs, IVs can only mean spare slots. Hence
its save to make the scalar undefined, rather than calling out to
write a 0 that would also be interpreted as a NULL pointer.
Affected files ...
... //depot/perl/op.c#979 edit
Differences ...
==== //depot/perl/op.c#979 (text) ====
Index: perl/op.c
--- perl/op.c#978~32942~ 2008-01-10 15:32:27.000000000 -0800
+++ perl/op.c 2008-01-10 15:54:22.000000000 -0800
@@ -3370,7 +3370,7 @@
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);
End of Patch.