Beefy Boxes and Bandwidth Generously Provided by pair Networks
There's more than one way to do things
 
PerlMonks  

Re^2: Bizarre copy of ARRAY in leave at ...

by mnooning (Sexton)
on Apr 07, 2005 at 01:42 UTC ( #445508=note: print w/ replies, xml ) Need Help??


in reply to Re: Bizarre copy of ARRAY in leave at ...
in thread Bizarre copy of ARRAY in leave at ...

I was able to get the thing to at least run ... until I hit the Exit or Go buttons. The problem seems to be that the
ProgressBar code works with undefined items, and just ignores the errors, while the debugger does not ignore them.
The case in point is ProgressBar::variable
I will paste the original, that crashes in the debugger, and my fix.

sub variable { my $c = shift; my $oldvarref = $c->{'-variable'}; my $oldval = $$oldvarref if $oldvarref; if(@_) { my $varref = shift; if ($oldvarref) { $c->traceVdelete($oldvarref); } $c->{'-variable'} = $varref; $c->traceVariable($varref, 'w', sub { $c->value($_[1]) }); $$varref = $oldval; _layoutRequest($c,2); } $oldval; } <\code> <br> Here is the fix<br> <br> <code> sub variable { my $c = shift; my $oldvarref = ""; my $oldval = ""; if (defined($c->{'-variable'})) { $oldvarref = $c->{'-variable'}; $oldval = $$oldvarref if $oldvarref; } if(@_) { my $varref = shift; $c->traceVdelete($oldvarref) if (defined($oldvarref) and ($oldvarref ne "")); $c->{'-variable'} = $varref; $c->traceVariable($varref, 'w', sub { $c->value([1]) }); $$varref = $oldval if (defined($oldval) and ($oldval ne "")); _layoutRequest($c,2); } return ($oldval) if (defined($oldval) and ($oldval ne "")); }


This took way to long for me to find. Now I have a worse problem (again, only in the debugger).
It runs in that it pops up the progress bar, but when I click on either Exit or Go, it bombs.
I have traced it down to Tk::MainLoop where it does

DoOneEvent(0);

but I cannot trace from there. I am getting very nervous that Tk may have such unprotected
undefined items sprinkled about. That would spell doom for anyone wanting to use Tk ... and be
able to use the Perl debugger.

Someone ... please say it isn't so!
Thanks


Comment on Re^2: Bizarre copy of ARRAY in leave at ...
Download Code

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://445508]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others contemplating the Monastery: (4)
As of 2014-09-21 13:12 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    How do you remember the number of days in each month?











    Results (171 votes), past polls