include: Add support for executing finally code for exceptions without using a separate function.
Robert Shearman
rob at codeweavers.com
Sun Feb 17 12:15:52 CST 2008
A __FINALLY block is similar to an __EXCEPT block except that it needs
to execute when the code in the __TRY block doesn't and it needs to
continue unwinding to find an exception handler.
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.
---
dlls/ntdll/exception.c | 3 +-
include/wine/exception.h | 56
+++++++++++++++++++++++++++++----------------
2 files changed, 38 insertions(+), 21 deletions(-)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 6ad6d4eeae1ec5496f6de3c83adb894c253ff46b.diff
Type: text/x-patch
Size: 3880 bytes
Desc: not available
Url : http://www.winehq.org/pipermail/wine-patches/attachments/20080217/29ffb8b9/attachment.bin
More information about the wine-patches
mailing list