Alexandre Julliard : ntdll: Set the TARGET_UNWIND flag when calling the unwind handler for the target frame .
Alexandre Julliard
julliard at winehq.org
Mon Mar 12 11:59:58 CDT 2012
Module: wine
Branch: master
Commit: 2bce0c698e2a2854fc8aa0e44838cc13cbdf772b
URL: http://source.winehq.org/git/wine.git/?a=commit;h=2bce0c698e2a2854fc8aa0e44838cc13cbdf772b
Author: Alexandre Julliard <julliard at winehq.org>
Date: Mon Mar 12 11:20:29 2012 +0100
ntdll: Set the TARGET_UNWIND flag when calling the unwind handler for the target frame.
---
dlls/ntdll/signal_x86_64.c | 1 +
include/wine/exception.h | 1 +
2 files changed, 2 insertions(+), 0 deletions(-)
diff --git a/dlls/ntdll/signal_x86_64.c b/dlls/ntdll/signal_x86_64.c
index a9ff371..8b3fca9 100644
--- a/dlls/ntdll/signal_x86_64.c
+++ b/dlls/ntdll/signal_x86_64.c
@@ -3016,6 +3016,7 @@ void WINAPI RtlUnwindEx( PVOID end_frame, PVOID target_ip, EXCEPTION_RECORD *rec
ERR( "invalid end frame %lx/%p\n", dispatch.EstablisherFrame, end_frame );
raise_status( STATUS_INVALID_UNWIND_TARGET, rec );
}
+ if (dispatch.EstablisherFrame == (ULONG64)end_frame) rec->ExceptionFlags |= EH_TARGET_UNWIND;
call_unwind_handler( rec, &dispatch );
}
else /* hack: call builtin handlers registered in the tib list */
diff --git a/include/wine/exception.h b/include/wine/exception.h
index 9115fc9..8b807c1 100644
--- a/include/wine/exception.h
+++ b/include/wine/exception.h
@@ -252,6 +252,7 @@ static inline EXCEPTION_REGISTRATION_RECORD *__wine_get_frame(void)
#define EH_EXIT_UNWIND 0x04
#define EH_STACK_INVALID 0x08
#define EH_NESTED_CALL 0x10
+#define EH_TARGET_UNWIND 0x20
/* Wine-specific exceptions codes */
More information about the wine-cvs
mailing list