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.

Reply via email to