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