summaryrefslogtreecommitdiff
path: root/dump.c
diff options
context:
space:
mode:
authorDaniel Dragan <bulk88@hotmail.com>2014-10-31 03:23:17 -0400
committerFather Chrysostomos <sprout@cpan.org>2014-10-31 12:37:08 -0700
commiteacbb37937698a035d5ed63fcbdf15dd4eab56cf (patch)
tree99f7dc0cbedf55df1391d054c456f5d2b52a3ae9 /dump.c
parent699ed31ec604580b23b25fc7a7fb44b59c92cbc6 (diff)
downloadperl-eacbb37937698a035d5ed63fcbdf15dd4eab56cf.tar.gz
free up CvPADLIST slot for XSUBs for future use
CvRESERVED is a placeholder, it will be replaced with a sentinal value from future revised BOOTCHECK API. CvPADLIST_set was helpful during development of this patch, so keep it around for now. PoisonPADLIST's magic value is from PERL_POISON 0xEF pattern. Some PoisonPADLIST locations will get code from future BOOTCHECK API. Make padlist_dup a NN function to avoid overhead of calling it for XSUBs during closing. Perl_cv_undef_flags's else if (CvISXSUB(&cvbody)) is to avoid whitespace changes. Filed as perl [#123059].
Diffstat (limited to 'dump.c')
-rw-r--r--dump.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/dump.c b/dump.c
index 2d9e019268..6da85ee675 100644
--- a/dump.c
+++ b/dump.c
@@ -2001,10 +2001,14 @@ Perl_do_sv_dump(pTHX_ I32 level, PerlIO *file, SV *sv, I32 nest, I32 maxnest, bo
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));
- Perl_dump_indent(aTHX_ level, file, " PADLIST = 0x%"UVxf"\n", PTR2UV(CvPADLIST(sv)));
- if (nest < maxnest) {
- do_dump_pad(level+1, file, CvPADLIST(sv), 0);
+ if (!CvISXSUB(sv)) {
+ Perl_dump_indent(aTHX_ level, file, " PADLIST = 0x%"UVxf"\n", PTR2UV(CvPADLIST(sv)));
+ if (nest < maxnest) {
+ do_dump_pad(level+1, file, CvPADLIST(sv), 0);
+ }
}
+ else
+ Perl_dump_indent(aTHX_ level, file, " RESERVED = 0x%p\n", CvRESERVED(sv));
{
const CV * const outside = CvOUTSIDE(sv);
Perl_dump_indent(aTHX_ level, file, " OUTSIDE = 0x%"UVxf" (%s)\n",