Change 34167 by [EMAIL PROTECTED] on 2008/07/31 10:03:33
You can't (and shouldn't) use CvDEPTH on a PVFM.
Affected files ...
... //depot/perl/cv.h#76 edit
... //depot/perl/dump.c#310 edit
... //depot/perl/ext/Devel/Peek/t/Peek.t#46 edit
Differences ...
==== //depot/perl/cv.h#76 (text) ====
Index: perl/cv.h
--- perl/cv.h#75~34030~ 2008-06-08 08:37:48.000000000 -0700
+++ perl/cv.h 2008-07-31 03:03:33.000000000 -0700
@@ -57,8 +57,7 @@
#define CvFILEGV(sv) (gv_fetchfile(CvFILE(sv)))
#if defined(__GNUC__) && !defined(PERL_GCC_BRACE_GROUPS_FORBIDDEN)
# define CvDEPTH(sv) (*({const CV *_cvdepth = (CV *)sv; \
- assert(SvTYPE(_cvdepth) == SVt_PVCV || \
- SvTYPE(_cvdepth) == SVt_PVFM); \
+ assert(SvTYPE(_cvdepth) == SVt_PVCV); \
&((XPVCV*)SvANY(_cvdepth))->xiv_u.xivu_i32; \
}))
#else
==== //depot/perl/dump.c#310 (text) ====
Index: perl/dump.c
--- perl/dump.c#309~34133~ 2008-07-12 00:40:33.000000000 -0700
+++ perl/dump.c 2008-07-31 03:03:33.000000000 -0700
@@ -1826,7 +1826,8 @@
}
do_gvgv_dump(level, file, " GVGV::GV", CvGV(sv));
Perl_dump_indent(aTHX_ level, file, " FILE = \"%s\"\n", CvFILE(sv));
- Perl_dump_indent(aTHX_ level, file, " DEPTH = %"IVdf"\n",
(IV)CvDEPTH(sv));
+ if (type == SVt_PVCV)
+ Perl_dump_indent(aTHX_ level, file, " DEPTH = %"IVdf"\n",
(IV)CvDEPTH(sv));
Perl_dump_indent(aTHX_ level, file, " FLAGS = 0x%"UVxf"\n",
(UV)CvFLAGS(sv));
Perl_dump_indent(aTHX_ level, file, " OUTSIDE_SEQ = %"UVuf"\n",
(UV)CvOUTSIDE_SEQ(sv));
if (type == SVt_PVFM)
==== //depot/perl/ext/Devel/Peek/t/Peek.t#46 (text) ====
Index: perl/ext/Devel/Peek/t/Peek.t
--- perl/ext/Devel/Peek/t/Peek.t#45~34133~ 2008-07-12 00:40:33.000000000
-0700
+++ perl/ext/Devel/Peek/t/Peek.t 2008-07-31 03:03:33.000000000 -0700
@@ -654,7 +654,7 @@
XSUBANY = 0 # $] < 5.009
GVGV::GV = $ADDR\\t"main" :: "PIE"
FILE = ".*\\b(?i:peek\\.t)"
- DEPTH = 0
+ DEPTH = 0 # $] <= 5.010
(?: MUTEXP = $ADDR
OWNER = $ADDR
)? FLAGS = 0x0
End of Patch.