Change 14139 by jhi@alpha on 2002/01/08 19:13:43
Subject: [patch] peep() is rude
From: Hugo van der Sanden <[EMAIL PROTECTED]>
Date: Tue, 08 Jan 2002 19:17:50 +0000
Message-Id: <[EMAIL PROTECTED]>
Affected files ...
.... //depot/perl/op.c#474 edit
.... //depot/perl/t/run/kill_perl.t#21 edit
Differences ...
==== //depot/perl/op.c#474 (text) ====
Index: perl/op.c
--- perl/op.c.~1~ Tue Jan 8 12:30:05 2002
+++ perl/op.c Tue Jan 8 12:30:05 2002
@@ -7035,7 +7035,7 @@
else if (o->op_next->op_type == OP_RV2AV) {
OP* pop = o->op_next->op_next;
IV i;
- if (pop->op_type == OP_CONST &&
+ if (pop && pop->op_type == OP_CONST &&
(PL_op = pop->op_next) &&
pop->op_next->op_type == OP_AELEM &&
!(pop->op_next->op_private &
==== //depot/perl/t/run/kill_perl.t#21 (text) ====
Index: perl/t/run/kill_perl.t
--- perl/t/run/kill_perl.t.~1~ Tue Jan 8 12:30:05 2002
+++ perl/t/run/kill_perl.t Tue Jan 8 12:30:05 2002
@@ -816,3 +816,9 @@
print "ok" if 'X' =~ /\X/;
EXPECT
ok
+######## segfault in 5.6.1 within peep()
+@a = (1..9);
+@b = sort { @c = sort { @d = sort { 0 } @a; @d; } @a; } @a;
+print join '', @a, "\n";
+EXPECT
+123456789
End of Patch.