develooper Front page | perl.perl5.porters | Postings from January 2016

[perl #127351] Bleadperl v5.23.6-97-g6146d9e breaksEXODIST/Test-Stream-1.302026.tar.gz

From:
Tony Cook via RT
Date:
January 26, 2016 05:10
Subject:
[perl #127351] Bleadperl v5.23.6-97-g6146d9e breaksEXODIST/Test-Stream-1.302026.tar.gz
Message ID:
rt-4.0.18-28846-1453784992-502.127351-15-0@perl.org
On Fri Jan 22 14:57:39 2016, andreas.koenig.7os6VVqR@franz.ak.mind.de wrote:
> This BBC once again comes to you from our one and only Slaven Rezić.
> 
> bisect
> ------
> commit 6146d9e1c87d449f5c7e9c953a2e9051e32b1696
> Author: Tony Cook <tony@develop-help.com>
> Date:   Mon Jan 11 14:45:43 2016 +1100
> 
> [perl #123788] update isa magic stash records when *ISA is deleted

This is indirectly caused by a different bug in perl.

When you do:

  *Foo::ISA = somearrayref

no isaelem magic is set on the array, the code I added then tries to remove that magic from an SV that can't have it, which asserts or crashes when somearrayref is no longer an @ISA.

It also means that assignments to the elements of that @ISA don't update the method cache, so:

 *My::Parent::foo = sub { "foo" };
 *My::OtherParent::foo = sub { "other" };
 my $x = [ "My::Parent" ];
 *Fake::ISA = $x;
 print Fake->foo, "\n";
 $x->[0] = "My::OtherParent";
 print Fake->foo, "\n";

outputs "foo" twice.

The attached patches should fix both issues.

Tony

---
via perlbug:  queue: perl5 status: new
https://rt.perl.org/Ticket/Display.html?id=127351



nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About