This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
[perl #70171] 5.10.0 -> 5.10.1 Regression in fafafbaf70 (Big slowdown in 5.10 @_...
authorFather Chrysostomos <sprout@cpan.org>
Mon, 14 Dec 2009 15:15:51 +0000 (16:15 +0100)
committerRafael Garcia-Suarez <rgs@consttype.org>
Mon, 14 Dec 2009 15:15:51 +0000 (16:15 +0100)
commit0f907b96d618c97cd2e020841a70ae037954a616
treeea5dd38a108bbcb88d35ea1344797edc4cfa00ff
parent2ab54efd6265713df5cd4bd0927024245675c1c2
[perl #70171] 5.10.0 -> 5.10.1 Regression in fafafbaf70 (Big slowdown in 5.10 @_ parameter passing)

In this case my %x = %$x assigns a hash to itself. This causes the
hv_clear in pp_aassign to wipe away the hash before it can be copied.
The â€˜panic: attempt to copy freed scalar’ error is triggered by this
line, which copies the value:
    sv_setsv(tmpstr,*relem);        /* value */

The solution is to make sure the OPpASSIGN_COMMON flag is on in such
cases, so that pp_aassign copies everything before doing the assignment.
op.c
t/op/array.t