Piotr Caban : msvcrt: Try to convert C to C++ exception in __CxxFrameHandler.

Alexandre Julliard julliard at winehq.org
Thu Jan 2 13:13:48 CST 2014


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

Author: Piotr Caban <piotr at codeweavers.com>
Date:   Thu Jan  2 14:37:59 2014 +0100

msvcrt: Try to convert C to C++ exception in __CxxFrameHandler.

---

 dlls/msvcrt/except_i386.c |   10 ++++++++++
 1 files changed, 10 insertions(+), 0 deletions(-)

diff --git a/dlls/msvcrt/except_i386.c b/dlls/msvcrt/except_i386.c
index 8639579..0481282 100644
--- a/dlls/msvcrt/except_i386.c
+++ b/dlls/msvcrt/except_i386.c
@@ -543,9 +543,19 @@ DWORD CDECL cxx_frame_handler( PEXCEPTION_RECORD rec, cxx_exception_frame* frame
     }
     else
     {
+        thread_data_t *data = msvcrt_get_thread_data();
+
         exc_type = NULL;
         TRACE("handling C exception code %x  rec %p frame %p trylevel %d descr %p nested_frame %p\n",
               rec->ExceptionCode,  rec, frame, frame->trylevel, descr, nested_frame );
+
+        if (data->se_translator) {
+            EXCEPTION_POINTERS except_ptrs;
+
+            except_ptrs.ExceptionRecord = rec;
+            except_ptrs.ContextRecord = context;
+            data->se_translator(rec->ExceptionCode, &except_ptrs);
+        }
     }
 
     call_catch_block( rec, frame, descr, frame->trylevel, exc_type );




More information about the wine-cvs mailing list