Module: wine Branch: master Commit: 0f3c31b1eab7842834242ac13e5eef0e0d5ce5ad URL: http://source.winehq.org/git/wine.git/?a=commit;h=0f3c31b1eab7842834242ac13e...
Author: Piotr Caban piotr@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 );