Subject: | [PATCH] lastsib support |
Under bleadperl, it fails:
t/callck.t ..... 3/79 Assertion failed: (kid->op_lastsib), function S_finalize_op, file op.c, line 2293.
See the attached patch.
Subject: | open_qpdWVjDJ.txt |
diff -rup Devel-CallChecker-0.006-niU_1f-orig/t/callck.xs Devel-CallChecker-0.006-niU_1f/t/callck.xs
--- Devel-CallChecker-0.006-niU_1f-orig/t/callck.xs 2013-09-21 12:35:16.000000000 -0700
+++ Devel-CallChecker-0.006-niU_1f/t/callck.xs 2014-10-25 22:02:20.000000000 -0700
@@ -66,16 +66,23 @@ static OP *THX_ck_entersub_multi_sum(pTH
{
OP *sumop = NULL;
OP *pushop = cUNOPx(entersubop)->op_first;
+ OP *parent;
PERL_UNUSED_ARG(namegv);
PERL_UNUSED_ARG(ckobj);
- if (!pushop->op_sibling)
+ if (!pushop->op_sibling) {
+ parent = pushop;
pushop = cUNOPx(pushop)->op_first;
+ }
while (1) {
OP *aop = pushop->op_sibling;
if (!aop->op_sibling)
break;
+#ifdef op_sibling_splice
+ op_sibling_splice(parent, pushop, 1, NULL);
+#else
pushop->op_sibling = aop->op_sibling;
aop->op_sibling = NULL;
+#endif
op_contextualize(aop, G_SCALAR);
if (sumop) {
sumop = newBINOP(OP_ADD, 0, sumop, aop);