Alexandre Julliard : exception.h: Only push the exception frame after sigsetjmp.
Alexandre Julliard
julliard at winehq.org
Thu May 1 06:38:47 CDT 2008
Module: wine
Branch: master
Commit: c20e8c90052ccbf4dec850d7cc28daed214870fa
URL: http://source.winehq.org/git/wine.git/?a=commit;h=c20e8c90052ccbf4dec850d7cc28daed214870fa
Author: Alexandre Julliard <julliard at winehq.org>
Date: Thu May 1 11:07:08 2008 +0200
exception.h: Only push the exception frame after sigsetjmp.
Otherwise on Windows longjmp may want to mess with the exception frame.
---
include/wine/exception.h | 4 +---
1 files changed, 1 insertions(+), 3 deletions(-)
diff --git a/include/wine/exception.h b/include/wine/exception.h
index 1dce217..ad21866 100644
--- a/include/wine/exception.h
+++ b/include/wine/exception.h
@@ -96,7 +96,6 @@
} else { \
__f.frame.Handler = __wine_exception_handler; \
__f.u.filter = (func); \
- __wine_push_frame( &__f.frame ); \
if (sigsetjmp( __f.jmp, 0 )) { \
const __WINE_FRAME * const __eptr __attribute__((unused)) = &__f; \
do {
@@ -108,7 +107,6 @@
break; \
} else { \
__f.frame.Handler = __wine_exception_handler_page_fault; \
- __wine_push_frame( &__f.frame ); \
if (sigsetjmp( __f.jmp, 0 )) { \
const __WINE_FRAME * const __eptr __attribute__((unused)) = &__f; \
do {
@@ -120,7 +118,6 @@
break; \
} else { \
__f.frame.Handler = __wine_exception_handler_all; \
- __wine_push_frame( &__f.frame ); \
if (sigsetjmp( __f.jmp, 0 )) { \
const __WINE_FRAME * const __eptr __attribute__((unused)) = &__f; \
do {
@@ -129,6 +126,7 @@
} while (0); \
break; \
} \
+ __wine_push_frame( &__f.frame ); \
__first = 0; \
} \
} while (0);
More information about the wine-cvs
mailing list