diff options
author | Father Chrysostomos <sprout@cpan.org> | 2016-09-10 07:27:43 -0700 |
---|---|---|
committer | Father Chrysostomos <sprout@cpan.org> | 2016-09-10 14:11:19 -0700 |
commit | 95c0a761e6d0916fd6abd02af5a344be7de9ecdb (patch) | |
tree | 52022ea06acad1735af690c193663545a0bec6d3 /pad.c | |
parent | 6da13066b6bcab52b33b8891e90130d243b7faa1 (diff) | |
download | perl-95c0a761e6d0916fd6abd02af5a344be7de9ecdb.tar.gz |
pad.c:pad_fixup_inner_anons: Add assertions
These would have made it easier to track down the bug fixed by
the previous commit.
Diffstat (limited to 'pad.c')
-rw-r--r-- | pad.c | 2 |
1 files changed, 2 insertions, 0 deletions
@@ -2376,6 +2376,7 @@ Perl_pad_fixup_inner_anons(pTHX_ PADLIST *padlist, CV *old_cv, CV *new_cv) PADNAME **names = namepad; PADOFFSET i = ix; while (PadnameOUTER(name)) { + assert(SvTYPE(cv) == SVt_PVCV); cv = CvOUTSIDE(cv); names = PadlistNAMESARRAY(CvPADLIST(cv)); i = PARENT_PAD_INDEX(name); @@ -2406,6 +2407,7 @@ Perl_pad_fixup_inner_anons(pTHX_ PADLIST *padlist, CV *old_cv, CV *new_cv) assert(SvWEAKREF(rv)); innercv = (CV *)SvRV(rv); assert(!CvWEAKOUTSIDE(innercv)); + assert(CvOUTSIDE(innercv) == old_cv); SvREFCNT_dec(CvOUTSIDE(innercv)); CvOUTSIDE(innercv) = (CV *)SvREFCNT_inc_simple_NN(new_cv); } |