Skip Menu |

This queue is for tickets about the Data-Dump-Streamer CPAN distribution.

Report information
The Basics
Id: 15660
Status: resolved
Priority: 1/
Queue: Data-Dump-Streamer

People
Owner: yves [...] cpan.org
Requestors: twists [...] gmail.com
Cc:
AdminCc:

Bug Information
Severity: Unimportant
Broken in:
  • 1.07
  • 2.02
Fixed in: (no value)



Subject: Dump(\%::) errors when ->ARRAY is invalid on a B::SPECIAL object
Dump(\%::) Can't locate object method "ARRAY" via package "B::SPECIAL" at .../Data/Dump/Streamer.pm line 3157 (I think) The attached patch checks that PADLIST and other methods actually returned something useful. The output was too big to validate. At least it doesn't die anymore. I assume this is probably something that happens to references to subs without definitions. Those won't have lexicals anyway.
--- /usr/local/lib/perl/5.8.4/Data/Dump/Streamer.pm~ 2005-04-06 16:54:34.000000000 -0500 +++ /usr/local/lib/perl/5.8.4/Data/Dump/Streamer.pm 2005-11-09 14:59:39.590658640 -0600 @@ -3154,13 +3154,20 @@ my $cv=shift; my $svo=svref_2object($cv); - my @pl_array = $svo->PADLIST->ARRAY; + my @pl_array = ( $svo->can( 'PADLIST' ) + and $svo->PADLIST->can( 'ARRAY' ) + ? $svo->PADLIST->ARRAY + : () ); - my @name_obj = $pl_array[0]->ARRAY; + my @name_obj = ( ref $pl_array[0] + and $pl_array[0]->can( 'ARRAY' ) + ? $pl_array[0]->ARRAY + : () ); my %named; for my $i ( 0..$#name_obj ) { - if ( ref($name_obj[$i])!~/SPECIAL/) { + if ( ref $name_obj[$i] + and ref($name_obj[$i])!~/SPECIAL/) { $named{$i} = "${ $name_obj[$i]->object_2svref }"; } }
On Wed Nov 09 16:36:44 2005, JJORE wrote: Show quoted text
> Dump(\%::) > Can't locate object method "ARRAY" via package "B::SPECIAL" at > .../Data/Dump/Streamer.pm line 3157 (I think) > > The attached patch checks that PADLIST and other methods actually > returned something useful. The output was too big to validate. At > least it doesn't die anymore. I assume this is probably something > that happens to references to subs without definitions. Those won't > have lexicals anyway.
Does this still raise a problem for you? I get asegfault on the latest DDS/Perl, but im not sure which is at fault. Yves
Subject: Re: [rt.cpan.org #15660] Dump(\%::) errors when ->ARRAY is invalid on a B::SPECIAL object
Date: Fri, 14 Apr 2006 15:18:29 -0500
To: bug-Data-Dump-Streamer [...] rt.cpan.org
From: "Joshua ben Jore" <twists [...] gmail.com>
On 4/14/06, via RT <bug-Data-Dump-Streamer@rt.cpan.org> wrote: Show quoted text
> > <URL: http://rt.cpan.org/Ticket/Display.html?id=15660 > > > On Wed Nov 09 16:36:44 2005, JJORE wrote:
> > Dump(\%::) > > Can't locate object method "ARRAY" via package "B::SPECIAL" at > > .../Data/Dump/Streamer.pm line 3157 (I think) > > > > The attached patch checks that PADLIST and other methods actually > > returned something useful. The output was too big to validate. At > > least it doesn't die anymore. I assume this is probably something > > that happens to references to subs without definitions. Those won't > > have lexicals anyway.
> > Does this still raise a problem for you? I get asegfault on the latest > DDS/Perl, but im not sure which is at fault.
I haven't noticed any errors using DDS for a very long time now. I haven't received any exceptions either. When we stopped talking is when I stopped having issues. Josh
Apparently resolved