diff options
author | Father Chrysostomos <sprout@cpan.org> | 2014-12-04 11:16:27 -0800 |
---|---|---|
committer | Father Chrysostomos <sprout@cpan.org> | 2014-12-04 12:32:11 -0800 |
commit | 704b97aa6fbde2d13d9db5c7615d8baa5dbb885f (patch) | |
tree | 9561bff6d1d6d00f62ee6f014c214fbd89a28967 /dump.c | |
parent | ddb555489955f48649cfd58f4f43830d9203728a (diff) | |
download | perl-704b97aa6fbde2d13d9db5c7615d8baa5dbb885f.tar.gz |
dump.c: Don’t dump CvOUTSIDE SV when there is none
$ ./perl -Ilib -MDevel::Peek -Mfeature=:all -Xle 'my sub f; Dump \&f'
SV = IV(0x7fd7138312b0) at 0x7fd7138312c0
REFCNT = 1
FLAGS = (TEMP,ROK)
RV = 0x7fd713831b90
SV = PVCV(0x7fd7138303d0) at 0x7fd713831b90
REFCNT = 2
FLAGS = (CLONED,DYNFILE,NAMED,LEXICAL)
COMP_STASH = 0x7fd713807ce8 "main"
ROOT = 0x0
NAME = "f"
FILE = "-e"
DEPTH = 0
FLAGS = 0x19040
OUTSIDE_SEQ = 187
PADLIST = 0x7fd7134067e8
PADNAME = 0x7fd713411f88(0x7fd713406d48) PAD = 0x7fd713807e68(0x7fd71340d2f8)
OUTSIDE = 0x0 (null)
SV = 0
That final ‘SV = 0’ is very confusing!
Diffstat (limited to 'dump.c')
-rw-r--r-- | dump.c | 3 |
1 files changed, 2 insertions, 1 deletions
@@ -1982,7 +1982,8 @@ Perl_do_sv_dump(pTHX_ I32 level, PerlIO *file, SV *sv, I32 nest, I32 maxnest, bo GvNAMEUTF8(CvGV(outside))) : "UNDEFINED")); } - if (nest < maxnest && (CvCLONE(sv) || CvCLONED(sv))) + if (CvOUTSIDE(sv) + && (nest < maxnest && (CvCLONE(sv) || CvCLONED(sv)))) do_sv_dump(level+1, file, MUTABLE_SV(CvOUTSIDE(sv)), nest+1, maxnest, dumpops, pvlim); break; |