Alexandre Julliard : ntdll: Capture the context inside RtlUnwindEx instead of assuming it' s already initialized.

Alexandre Julliard julliard at winehq.org
Thu Jan 27 12:43:17 CST 2011


Module: wine
Branch: master
Commit: aa4ad6d76613bea8931059982d9a2b9a9e305e28
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=aa4ad6d76613bea8931059982d9a2b9a9e305e28

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Thu Jan 27 11:51:34 2011 +0100

ntdll: Capture the context inside RtlUnwindEx instead of assuming it's already initialized.

---

 dlls/ntdll/signal_x86_64.c |    9 +++++----
 1 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/dlls/ntdll/signal_x86_64.c b/dlls/ntdll/signal_x86_64.c
index d7aafda..ad49411 100644
--- a/dlls/ntdll/signal_x86_64.c
+++ b/dlls/ntdll/signal_x86_64.c
@@ -2783,6 +2783,8 @@ void WINAPI RtlUnwindEx( PVOID end_frame, PVOID target_ip, EXCEPTION_RECORD *rec
     NTSTATUS status;
     DWORD size;
 
+    RtlCaptureContext( orig_context );
+
     /* build an exception record, if we do not have one */
     if (!rec)
     {
@@ -2931,12 +2933,11 @@ void WINAPI RtlUnwindEx( PVOID end_frame, PVOID target_ip, EXCEPTION_RECORD *rec
 /*******************************************************************
  *		RtlUnwind (NTDLL.@)
  */
-void WINAPI __regs_RtlUnwind( void *frame, void *target_ip, EXCEPTION_RECORD *rec,
-                              void *retval, CONTEXT *context )
+void WINAPI RtlUnwind( void *frame, void *target_ip, EXCEPTION_RECORD *rec, void *retval )
 {
-    RtlUnwindEx( frame, target_ip, rec, retval, context, NULL );
+    CONTEXT context;
+    RtlUnwindEx( frame, target_ip, rec, retval, &context, NULL );
 }
-DEFINE_REGS_ENTRYPOINT( RtlUnwind, 4 )
 
 
 /*******************************************************************




More information about the wine-cvs mailing list