This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
[perl #19135] string eval turns off readonlyness on lexicals
authorFather Chrysostomos <sprout@cpan.org>
Wed, 8 Dec 2010 19:11:07 +0000 (11:11 -0800)
committerFather Chrysostomos <sprout@cpan.org>
Wed, 8 Dec 2010 19:13:24 +0000 (11:13 -0800)
commit3aadd5cd55cb7dedef11ffce3eef74f924ccd1bb
tree05d123eb6a67b12f0821d454acb9a72b2f58f2f6
parent8e88cfee26d866223a6b3bfffce6270271de00db
[perl #19135] string eval turns off readonlyness on lexicals

Don’t turn off readonliness on lexicals when freeing pad entries.

The readonliness is (prior to this commit) turned off explicitly in
pad_free under ithreads. See also bug #19022, which resulted from the
same change. There is some discussion there, too, but nobody seemed to
know exactly why the readonliness needed to be turned off.

Change 4761/2aa1bed, from January of 2000, added that SvREADONLY_off.
It is supposed to make sure that pad entries that were constants will
not be constants the next time they are used.

Dave Mitchell writes:
> I think...[this]...fix is correct (just removing the SvREADONLY_off).
> The issue it was trying to fix appears to have been properly fixed
> later by 3b1c21fabed159100271bd60bac3f870f5ac16af, which is why it's
> safe to remove it.

So this commit just deletes that code.
pad.c
t/op/eval.t