summaryrefslogtreecommitdiff
path: root/pad.c
diff options
context:
space:
mode:
authorFather Chrysostomos <sprout@cpan.org>2016-09-10 07:27:43 -0700
committerFather Chrysostomos <sprout@cpan.org>2016-09-10 14:11:19 -0700
commit95c0a761e6d0916fd6abd02af5a344be7de9ecdb (patch)
tree52022ea06acad1735af690c193663545a0bec6d3 /pad.c
parent6da13066b6bcab52b33b8891e90130d243b7faa1 (diff)
downloadperl-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.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/pad.c b/pad.c
index a41d2c7491..7cf1fe3058 100644
--- a/pad.c
+++ b/pad.c
@@ -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);
}