Change 32951 by [EMAIL PROTECTED] on 2008/01/11 12:47:57
Remove code that protected pp_qr against REGEXPs going away during
global destruction whilst they were stored via true references in
PL_regex_padav. It won't happen again (unless someone manages to get
a reference to an OP's regexp, which is also a risk in 5.10 and 5.8)
Affected files ...
... //depot/perl/pp_hot.c#553 edit
Differences ...
==== //depot/perl/pp_hot.c#553 (text) ====
Index: perl/pp_hot.c
--- perl/pp_hot.c#552~32949~ 2008-01-11 03:31:34.000000000 -0800
+++ perl/pp_hot.c 2008-01-11 04:47:57.000000000 -0800
@@ -1200,15 +1200,6 @@
SV * const pkg = rx ? CALLREG_PACKAGE(rx) : NULL;
SV * const rv = sv_newmortal();
- if (!rx) {
- /* FIXME ORANGE.
- This can go if/when regexps are stored directly in PL_regex_pad
- rather than via references. do_clean_objs finds and frees them
- when they are stored as references. */
- XPUSHs(rv);
- RETURN;
- }
-
SvUPGRADE(rv, SVt_IV);
/* This RV is about to own a reference to the regexp. (In addition to the
reference already owned by the PMOP. */
End of Patch.