Alexandre Julliard wrote:
> Robert Shearman <[EMAIL PROTECTED]> writes:
>
>   
>> The first goal is accomplished by changing the previous two-state
>> variable of __first into a three-state variable where the third state
>> is the state in which the finally code is executed in the normal
>> case. The second goal is accomplished by calling sigsetjmp in
>> __wine_finally_handler to give the finally code a place to jump back
>> to after it has finished executing.
>>     
>
> That can't work, once you longjmp into the finally block you can't
> longjmp back, since you are no longer inside the function that did the
> setjmp.

Ah, yes. I thought there might be some caveat like that on the use of 
longjmp, but I couldn't break it with any of the tests I did. I can see 
why it wouldn't work on all platforms or in all circumstances.

-- 
Rob Shearman



Reply via email to