Commit 48a447c5 authored by Piotr Caban's avatar Piotr Caban Committed by Alexandre Julliard

msvcrt: Pass catch_func_nested_frame struct to call_catch_block.

parent ea20974c
...@@ -110,7 +110,7 @@ typedef struct ...@@ -110,7 +110,7 @@ typedef struct
{ {
cxx_exception_frame *frame; cxx_exception_frame *frame;
const cxx_function_descr *descr; const cxx_function_descr *descr;
EXCEPTION_REGISTRATION_RECORD *nested_frame; catch_func_nested_frame *nested_frame;
} se_translator_ctx; } se_translator_ctx;
typedef struct _SCOPETABLE typedef struct _SCOPETABLE
...@@ -390,7 +390,7 @@ static DWORD catch_function_nested_handler( EXCEPTION_RECORD *rec, EXCEPTION_REG ...@@ -390,7 +390,7 @@ static DWORD catch_function_nested_handler( EXCEPTION_RECORD *rec, EXCEPTION_REG
static inline void call_catch_block( PEXCEPTION_RECORD rec, CONTEXT *context, static inline void call_catch_block( PEXCEPTION_RECORD rec, CONTEXT *context,
cxx_exception_frame *frame, cxx_exception_frame *frame,
const cxx_function_descr *descr, int nested_trylevel, const cxx_function_descr *descr, int nested_trylevel,
EXCEPTION_REGISTRATION_RECORD *catch_frame, catch_func_nested_frame *catch_frame,
cxx_exception_type *info ) cxx_exception_type *info )
{ {
UINT i; UINT i;
...@@ -440,7 +440,7 @@ static inline void call_catch_block( PEXCEPTION_RECORD rec, CONTEXT *context, ...@@ -440,7 +440,7 @@ static inline void call_catch_block( PEXCEPTION_RECORD rec, CONTEXT *context,
(void*)rec->ExceptionInformation[1]); (void*)rec->ExceptionInformation[1]);
/* unwind the stack */ /* unwind the stack */
RtlUnwind( catch_frame ? catch_frame : &frame->frame, 0, rec, 0 ); RtlUnwind( catch_frame ? &catch_frame->frame : &frame->frame, 0, rec, 0 );
cxx_local_unwind( frame, descr, tryblock->start_level ); cxx_local_unwind( frame, descr, tryblock->start_level );
frame->trylevel = tryblock->end_level + 1; frame->trylevel = tryblock->end_level + 1;
...@@ -627,7 +627,7 @@ DWORD CDECL cxx_frame_handler( PEXCEPTION_RECORD rec, cxx_exception_frame* frame ...@@ -627,7 +627,7 @@ DWORD CDECL cxx_frame_handler( PEXCEPTION_RECORD rec, cxx_exception_frame* frame
ctx.frame = frame; ctx.frame = frame;
ctx.descr = descr; ctx.descr = descr;
ctx.nested_frame = nested_frame ? &nested_frame->frame : NULL; ctx.nested_frame = nested_frame;
__TRY __TRY
{ {
except_ptrs.ExceptionRecord = rec; except_ptrs.ExceptionRecord = rec;
...@@ -642,7 +642,7 @@ DWORD CDECL cxx_frame_handler( PEXCEPTION_RECORD rec, cxx_exception_frame* frame ...@@ -642,7 +642,7 @@ DWORD CDECL cxx_frame_handler( PEXCEPTION_RECORD rec, cxx_exception_frame* frame
} }
call_catch_block( rec, context, frame, descr, call_catch_block( rec, context, frame, descr,
frame->trylevel, nested_frame ? &nested_frame->frame : NULL, exc_type ); frame->trylevel, nested_frame, exc_type );
return ExceptionContinueSearch; return ExceptionContinueSearch;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment