develooper Front page | perl.perl5.porters | Postings from April 2010

Re: Make POPEVAL() pop cx->blk_eval.old_namesv into a newsv localvariable

Thread Previous
From:
Vincent Pit
Date:
April 17, 2010 14:12
Subject:
Re: Make POPEVAL() pop cx->blk_eval.old_namesv into a newsv localvariable
Message ID:
4BCA2428.6020909@profvince.com

> But it would be suitable, I think, for 5.12.1, to keep the existing POPEVAL
> macro, add this corrected version under a new name, and change all the core's
> C code to use the new version.
>
> Nicholas Clark
>    

In this case, it's also possible to just manually save the value of 
cx->blk_eval.old_namesv wherever needed, without introducing or changing 
any macro. I believe I'd rather have this than adding a new macro that 
we'll have to support for eons.

I originally chose the "fix POPEVAL" approch because I didn't really 
target this change for 5.12.x (despite the timing). The bug is only 
visible when dieing leads to fire a destructor that call_sv() some code 
with G_EVAL flag set *with the same stackinfo*. This never happens in 
the core because all such calls happen in a new stack (DESTROY, signal 
handlers...).

Vincent.

Thread Previous


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