From 7601007bbbe673d3791a2d77c692a0c377835430 Mon Sep 17 00:00:00 2001 From: Father Chrysostomos Date: Mon, 2 Sep 2013 08:29:50 -0700 Subject: [PATCH] =?utf8?q?Don=E2=80=99t=20assume=20targs=20are=20contiguou?= =?utf8?q?s=20for=20=E2=80=98my=20$x;=20my=20$y=E2=80=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit In commit 18c931a3, the padrange optimisation was prevented from mak- ing this assumption for ‘my ($x,$y)’, but the assumption was still there in the code that combines multiple statements into one. This would lead to assertion failures (or, as of ce0d59f, crashes under non-debugging builds) if a keyword plugin declined to handle the second ‘my’, but only after creating a padop. This fixes a regression from 5.16 affecting Devel::CallParser under threaded builds. --- op.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/op.c b/op.c index 23eeaaa..a41afd7 100644 --- a/op.c +++ b/op.c @@ -11153,8 +11153,8 @@ Perl_rpeep(pTHX_ OP *o) && ( p->op_next->op_type == OP_NEXTSTATE || p->op_next->op_type == OP_DBSTATE) && count < OPpPADRANGE_COUNTMASK + && base + count == p->op_targ ) { - assert(base + count == p->op_targ); count++; followop = p->op_next; } -- 2.7.4