On Wed, Oct 29, 2008 at 10:06:15PM +0100, NotFound wrote:
> >       do_loop:
> >         say i
> >         push_eh do_inc
> >         $P0 = find_method i, "succ"
> >         i.$P0()
> >       do_inc:
> >         pop_eh
> >         inc i
> >         goto do_loop
> 
> I've noticed an anomaly: if you add .get_results($P0) after pop_eh
> nothing bag happens, but if you put it before, it starts leaking a lot
> of memory.

Last time I checked any .get_results ($P0) call has to be the very first 
instruction executed as part of any exception handler -- even before any 
pop_eh.  If any other instruction is executed, then .get_result
gives back something other than the thrown exception.

(I checked this a month or two ago -- sometime after the pdd25cx
branch merge that updated exception handling.)

Pm

Reply via email to