X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2Fop%2Fargs.t;h=02d63521e0919de4c12e44a4c4fad1eed518c41a;hb=21fa6956243df9cb622bebfa0934ea7923519b4f;hp=4ea224d885b03448bb32e055621a3a8439429dab;hpb=1c2b4d67977aeb5bb1057ed40fce97cdd133e14a;p=p5sagit%2Fp5-mst-13.2.git diff --git a/t/op/args.t b/t/op/args.t index 4ea224d..02d6352 100755 --- a/t/op/args.t +++ b/t/op/args.t @@ -6,7 +6,7 @@ BEGIN { } require './test.pl'; -plan( tests => 20 ); +plan( tests => 23 ); # test various operations on @_ @@ -86,3 +86,22 @@ for (1..3) { is(join('',bar('d')),'Dd'); is(join('',baz('e')),'eE'); } + +# [perl #28032] delete $_[0] was freeing things too early + +{ + my $flag = 0; + sub X::DESTROY { $flag = 1 } + sub f { + delete $_[0]; + ok(!$flag, 'delete $_[0] : in f'); + } + { + my $x = bless [], 'X'; + f($x); + ok(!$flag, 'delete $_[0] : after f'); + } + ok($flag, 'delete $_[0] : outside block'); +} + +