Front page | perl.wxperl.users |
Postings from September 2012
Re: Crashy bug in either Wx or Perl 5.12
Thread Previous
|
Thread Next
From:
Mark Dootson
Date:
September 21, 2012 19:36
Subject:
Re: Crashy bug in either Wx or Perl 5.12
Message ID:
505D2400.4020801@znix.com
Hi,
It was a long time happening, but this is fixed in Wx 0.9912 recently
released to cpan.
Regards
Mark
On 01/12/2010 21:06, Eric J. Roode wrote:
> I have a small test program that consistently crashes. I can't tell
> if the crash is due to Wx or Perl, but I can trigger it on and off by
> how I use a recent Perl feature.
> Here is the program (it is also attached as "test.pl <http://test.pl>"):
>
> #!perl
> use Wx;
> package MyApp;
> use base 'Wx::App';
> use MyList;
> sub OnInit
> {
> my $self = shift;
> my $frame = Wx::Frame->new(undef, -1, 'title');
> my $panel = Wx::Panel->new($frame);
> MyList->new(parent => $panel, pos => [10, 30], size => [500, 200]);
> $frame->Show(1);
> return 1;
> }
> # ---------------------------------
> # Create the application object, and pass control to it.
> package main;
> my $app = MyApp->new;
> $app->MainLoop;
>
> "MyList" is a control derived from Wx::ListCtrl. Here is its code (also
> attached as "MyList.pm"):
>
> package MyList;
> use Modern::Perl;
> use Wx qw(:listctrl);
> use base 'Wx::ListCtrl';
> use Hash::Util::FieldHash;
> Hash::Util::FieldHash::fieldhash # This is line 7
> my %some_attribute;
> sub new
> {
> my $class = shift;
> my %parm = @_;
> my $pos = $parm{pos} || [-1, 1];
> my $size = $parm{size} || [-1, 1];
> # Construct list control object
> my $self = $class->SUPER::new($parm{parent}, -1, $pos, $size,
> wxLC_REPORT | wxLC_HRULES |
> wxLC_VRULES,
> );
> # Init member data
> $some_attribute{$self} = 'sad';
> # Initialize column
> $self->InsertColumn(0, 'Zero');
> return $self;
> }
> 1;
>
> This is a pretty straightforward, inside-out object. It doesn't do
> anything but call Wx::ListCtrl's constructor with some fixed style
> parameters, and inserts a column titled "Zero". It stores the value
> "sad" in a member attribute that is a Fieldhash.
> This program crashes consistently every time I run it. My system
> is Windows 7 Professional 64-bit, 4gb RAM, dual-monitor, with Strawberry
> Perl 5.12.1 (MSWin32-x86-multi-thread), with Wx.pm version 0.98, and
> wxWidgets 2.8.10. The Windows Error Report is attached as "WEReport.txt".
> Now the interesting part: Comment out line 7 (turning
> %some_attribute from a field hash into a regular old hash), and the
> program no longer crashes. I don't know if Hash::Util::FieldHash is
> doing something bad, or if it's doing something that confuses Wx, or if
> Wx is doing something bad.
> --
> Eric J. Roode
Thread Previous
|
Thread Next