Re: Problem invoking super class after upgrading from 5.16.2 to 5.18.1

2014-02-19 Thread Michael Gerdau
 Hi Michael!

Hallo Jan !

[snip]

 that looks like some code I have written.. :)

I thought you might recognize it :)

 You are hitting this bug:
 
 https://rt.perl.org/Public/Bug/Display.html?id=120694
 
 It has been fixed in 5.18.2.

The bug looks very familiar. Thanks for the pointer. So I will upgrade
to 5.18.2 and all will be fine again.

Best wishes,
Michael
-- 
 Michael Gerdau   email: m...@qata.de
 GPG-keys available on request or at public keyserver


Re: Problem invoking super class after upgrading from 5.16.2 to 5.18.1

2014-02-18 Thread Jan Dubois
On Tue, Feb 18, 2014 at 4:10 PM, Michael Gerdau m...@qata.de wrote:
 Hi list !

Hi Michael!

 I have some legacy modules originating in the dim past of perl 5.6.x
 which is to say there are likely quite a few quirks in the code.

 The new() constructor of both does bless them using a stmt
 ST(0) = sv_2mortal(sv_bless(newRV_noinc((SV*)hv),stash));
 and stash is initialized by
 if (sv_isobject(pkg))
 stash = SvSTASH(SvRV(pkg));
 else
 stash = gv_stashsv(pkg, TRUE);
 with pkg being the first parameter passed to new().

 Both foo and bar also have a sub AUTOLOAD.

 Inside the sub AUTOLOAD of bar there is
$self-SUPER::fum(@_)
 and fum being a sub of foo.

Hey, that looks like some code I have written.. :)

 In 5.16.2 (and all prior versions I tried over the years) this works
 as expected by finally invoking foo-fum.

 In 5.18.1 (by means of stepping through it in the debugger) the line
$self-SUPER::fum(@_)
 inside bar-AUTOLOAD again invokes bar-AUTOLOAD where it hits once
 again the line
$self-SUPER::fum(@_)
 which again invokes ... and there is a recursive loop.

You are hitting this bug:

https://rt.perl.org/Public/Bug/Display.html?id=120694

It has been fixed in 5.18.2.

Cheers,
-Jan