Renamed EXCEPTION_FRAME to EXCEPTION_REGISTRATION_RECORD since that
seems to be the official name.
diff --git a/dlls/kernel/wowthunk.c b/dlls/kernel/wowthunk.c
index c1e7680..a281efc 100644
--- a/dlls/kernel/wowthunk.c
+++ b/dlls/kernel/wowthunk.c
@@ -157,8 +157,8 @@
*
* Handler for exceptions occurring in 16-bit code.
*/
-static DWORD call16_handler( EXCEPTION_RECORD *record, EXCEPTION_FRAME *frame,
- CONTEXT *context, EXCEPTION_FRAME **pdispatcher )
+static DWORD call16_handler( EXCEPTION_RECORD *record, EXCEPTION_REGISTRATION_RECORD *frame,
+ CONTEXT *context, EXCEPTION_REGISTRATION_RECORD **pdispatcher )
{
if (record->ExceptionFlags & (EH_UNWINDING | EH_EXIT_UNWIND))
{
diff --git a/dlls/msvcrt/cppexcept.c b/dlls/msvcrt/cppexcept.c
index b0437f7..36fdc24 100644
--- a/dlls/msvcrt/cppexcept.c
+++ b/dlls/msvcrt/cppexcept.c
@@ -39,8 +39,8 @@
#ifdef __i386__ /* CxxFrameHandler is not supported on non-i386 */
static DWORD cxx_frame_handler( PEXCEPTION_RECORD rec, cxx_exception_frame* frame,
- PCONTEXT exc_context, EXCEPTION_FRAME** dispatch,
- cxx_function_descr *descr, EXCEPTION_FRAME* nested_frame,
+ PCONTEXT exc_context, EXCEPTION_REGISTRATION_RECORD** dispatch,
+ cxx_function_descr *descr, EXCEPTION_REGISTRATION_RECORD* nested_frame,
int nested_trylevel, CONTEXT86 *context );
/* call a function with a given ebp */
@@ -226,16 +226,16 @@
/* exception frame for nested exceptions in catch block */
struct catch_func_nested_frame
{
- EXCEPTION_FRAME frame; /* standard exception frame */
- EXCEPTION_RECORD *prev_rec; /* previous record to restore in thread data */
- cxx_exception_frame *cxx_frame; /* frame of parent exception */
- cxx_function_descr *descr; /* descriptor of parent exception */
- int trylevel; /* current try level */
+ EXCEPTION_REGISTRATION_RECORD frame; /* standard exception frame */
+ EXCEPTION_RECORD *prev_rec; /* previous record to restore in thread data */
+ cxx_exception_frame *cxx_frame; /* frame of parent exception */
+ cxx_function_descr *descr; /* descriptor of parent exception */
+ int trylevel; /* current try level */
};
/* handler for exceptions happening while calling a catch function */
-static DWORD catch_function_nested_handler( EXCEPTION_RECORD *rec, EXCEPTION_FRAME *frame,
- CONTEXT *context, EXCEPTION_FRAME **dispatcher )
+static DWORD catch_function_nested_handler( EXCEPTION_RECORD *rec, EXCEPTION_REGISTRATION_RECORD *frame,
+ CONTEXT *context, EXCEPTION_REGISTRATION_RECORD **dispatcher )
{
struct catch_func_nested_frame *nested_frame = (struct catch_func_nested_frame *)frame;
@@ -323,8 +323,8 @@
* Implementation of __CxxFrameHandler.
*/
static DWORD cxx_frame_handler( PEXCEPTION_RECORD rec, cxx_exception_frame* frame,
- PCONTEXT exc_context, EXCEPTION_FRAME** dispatch,
- cxx_function_descr *descr, EXCEPTION_FRAME* nested_frame,
+ PCONTEXT exc_context, EXCEPTION_REGISTRATION_RECORD** dispatch,
+ cxx_function_descr *descr, EXCEPTION_REGISTRATION_RECORD* nested_frame,
int nested_trylevel, CONTEXT86 *context )
{
cxx_exception_type *exc_type;
@@ -379,8 +379,8 @@
/*********************************************************************
* __CxxFrameHandler (MSVCRT.@)
*/
-void __CxxFrameHandler( PEXCEPTION_RECORD rec, EXCEPTION_FRAME* frame,
- PCONTEXT exc_context, EXCEPTION_FRAME** dispatch,
+void __CxxFrameHandler( PEXCEPTION_RECORD rec, EXCEPTION_REGISTRATION_RECORD* frame,
+ PCONTEXT exc_context, EXCEPTION_REGISTRATION_RECORD** dispatch,
CONTEXT86 *context )
{
cxx_function_descr *descr = (cxx_function_descr *)context->Eax;
diff --git a/dlls/msvcrt/cppexcept.h b/dlls/msvcrt/cppexcept.h
index 4d2213c..3a822ed 100644
--- a/dlls/msvcrt/cppexcept.h
+++ b/dlls/msvcrt/cppexcept.h
@@ -37,9 +37,9 @@
/* the exception frame used by CxxFrameHandler */
typedef struct __cxx_exception_frame
{
- EXCEPTION_FRAME frame; /* the standard exception frame */
- int trylevel;
- DWORD ebp;
+ EXCEPTION_REGISTRATION_RECORD frame; /* the standard exception frame */
+ int trylevel;
+ DWORD ebp;
} cxx_exception_frame;
/* info about a single catch {} block */
@@ -106,9 +106,9 @@
} cxx_type_info_table;
typedef DWORD (*cxx_exc_custom_handler)( PEXCEPTION_RECORD, cxx_exception_frame*,
- PCONTEXT, struct __EXCEPTION_FRAME**,
+ PCONTEXT, EXCEPTION_REGISTRATION_RECORD**,
cxx_function_descr*, int nested_trylevel,
- EXCEPTION_FRAME *nested_frame, DWORD unknown3 );
+ EXCEPTION_REGISTRATION_RECORD *nested_frame, DWORD unknown3 );
/* type information for an exception object */
typedef struct __cxx_exception_type
diff --git a/dlls/msvcrt/except.c b/dlls/msvcrt/except.c
index f281e3e..2c0dbf5 100644
--- a/dlls/msvcrt/except.c
+++ b/dlls/msvcrt/except.c
@@ -53,8 +53,8 @@
typedef struct _MSVCRT_EXCEPTION_FRAME
{
- EXCEPTION_FRAME *prev;
- void (*handler)(PEXCEPTION_RECORD, PEXCEPTION_FRAME,
+ EXCEPTION_REGISTRATION_RECORD *prev;
+ void (*handler)(PEXCEPTION_RECORD, PEXCEPTION_REGISTRATION_RECORD,
PCONTEXT, PEXCEPTION_RECORD);
PSCOPETABLE scopetable;
int trylevel;
@@ -83,9 +83,9 @@
#endif
static DWORD MSVCRT_nested_handler(PEXCEPTION_RECORD rec,
- struct __EXCEPTION_FRAME* frame,
+ EXCEPTION_REGISTRATION_RECORD* frame,
PCONTEXT context WINE_UNUSED,
- struct __EXCEPTION_FRAME** dispatch)
+ EXCEPTION_REGISTRATION_RECORD** dispatch)
{
if (rec->ExceptionFlags & 0x6)
return ExceptionContinueSearch;
@@ -123,7 +123,7 @@
/*******************************************************************
* _global_unwind2 (MSVCRT.@)
*/
-void _global_unwind2(PEXCEPTION_FRAME frame)
+void _global_unwind2(PEXCEPTION_REGISTRATION_RECORD frame)
{
TRACE("(%p)\n",frame);
RtlUnwind( frame, 0, 0, 0 );
@@ -135,7 +135,7 @@
void _local_unwind2(MSVCRT_EXCEPTION_FRAME* frame, int trylevel)
{
MSVCRT_EXCEPTION_FRAME *curframe = frame;
- EXCEPTION_FRAME reg;
+ EXCEPTION_REGISTRATION_RECORD reg;
TRACE("(%p,%d,%d)\n",frame, frame->trylevel, trylevel);
@@ -165,9 +165,9 @@
* _except_handler2 (MSVCRT.@)
*/
int _except_handler2(PEXCEPTION_RECORD rec,
- PEXCEPTION_FRAME frame,
+ PEXCEPTION_REGISTRATION_RECORD frame,
PCONTEXT context,
- PEXCEPTION_FRAME* dispatcher)
+ PEXCEPTION_REGISTRATION_RECORD* dispatcher)
{
FIXME("exception %lx flags=%lx at %p handler=%p %p %p stub\n",
rec->ExceptionCode, rec->ExceptionFlags, rec->ExceptionAddress,
@@ -227,7 +227,7 @@
if (retval == EXCEPTION_EXECUTE_HANDLER)
{
/* Unwind all higher frames, this one will handle the exception */
- _global_unwind2((PEXCEPTION_FRAME)frame);
+ _global_unwind2((PEXCEPTION_REGISTRATION_RECORD)frame);
_local_unwind2(frame, trylevel);
/* Set our trylevel to the enclosing block, and call the __finally
@@ -343,7 +343,7 @@
TRACE("cur_frame=%lx\n",cur_frame);
if (cur_frame != jmp->Registration)
- _global_unwind2((PEXCEPTION_FRAME)jmp->Registration);
+ _global_unwind2((PEXCEPTION_REGISTRATION_RECORD)jmp->Registration);
if (jmp->Registration)
{
diff --git a/dlls/ntdll/exception.c b/dlls/ntdll/exception.c
index c0a6f93..97ba891 100644
--- a/dlls/ntdll/exception.c
+++ b/dlls/ntdll/exception.c
@@ -37,8 +37,8 @@
/* Exception record for handling exceptions happening inside exception handlers */
typedef struct
{
- EXCEPTION_FRAME frame;
- EXCEPTION_FRAME *prevFrame;
+ EXCEPTION_REGISTRATION_RECORD frame;
+ EXCEPTION_REGISTRATION_RECORD *prevFrame;
} EXC_NESTED_FRAME;
#ifdef __i386__
@@ -52,7 +52,7 @@
#endif
void WINAPI EXC_RtlRaiseException( PEXCEPTION_RECORD, PCONTEXT );
-void WINAPI EXC_RtlUnwind( PEXCEPTION_FRAME, LPVOID,
+void WINAPI EXC_RtlUnwind( PEXCEPTION_REGISTRATION_RECORD, LPVOID,
PEXCEPTION_RECORD, DWORD, PCONTEXT );
void WINAPI EXC_NtRaiseException( PEXCEPTION_RECORD, PCONTEXT,
BOOL, PCONTEXT );
@@ -62,8 +62,8 @@
*
* Handler for exceptions happening inside a handler.
*/
-static DWORD EXC_RaiseHandler( EXCEPTION_RECORD *rec, EXCEPTION_FRAME *frame,
- CONTEXT *context, EXCEPTION_FRAME **dispatcher )
+static DWORD EXC_RaiseHandler( EXCEPTION_RECORD *rec, EXCEPTION_REGISTRATION_RECORD *frame,
+ CONTEXT *context, EXCEPTION_REGISTRATION_RECORD **dispatcher )
{
if (rec->ExceptionFlags & (EH_UNWINDING | EH_EXIT_UNWIND))
return ExceptionContinueSearch;
@@ -78,8 +78,8 @@
*
* Handler for exceptions happening inside an unwind handler.
*/
-static DWORD EXC_UnwindHandler( EXCEPTION_RECORD *rec, EXCEPTION_FRAME *frame,
- CONTEXT *context, EXCEPTION_FRAME **dispatcher )
+static DWORD EXC_UnwindHandler( EXCEPTION_RECORD *rec, EXCEPTION_REGISTRATION_RECORD *frame,
+ CONTEXT *context, EXCEPTION_REGISTRATION_RECORD **dispatcher )
{
if (!(rec->ExceptionFlags & (EH_UNWINDING | EH_EXIT_UNWIND)))
return ExceptionContinueSearch;
@@ -97,8 +97,8 @@
* Please do not change the first 4 parameters order in any way - some exceptions handlers
* rely on Base Pointer (EBP) to have a fixed position related to the exception frame
*/
-static DWORD EXC_CallHandler( EXCEPTION_RECORD *record, EXCEPTION_FRAME *frame,
- CONTEXT *context, EXCEPTION_FRAME **dispatcher,
+static DWORD EXC_CallHandler( EXCEPTION_RECORD *record, EXCEPTION_REGISTRATION_RECORD *frame,
+ CONTEXT *context, EXCEPTION_REGISTRATION_RECORD **dispatcher,
PEXCEPTION_HANDLER handler, PEXCEPTION_HANDLER nested_handler)
{
EXC_NESTED_FRAME newframe;
@@ -179,7 +179,7 @@
DEFINE_REGS_ENTRYPOINT_1( RtlRaiseException, EXC_RtlRaiseException, EXCEPTION_RECORD * );
void WINAPI EXC_RtlRaiseException( EXCEPTION_RECORD *rec, CONTEXT *context )
{
- PEXCEPTION_FRAME frame, dispatch, nested_frame;
+ PEXCEPTION_REGISTRATION_RECORD frame, dispatch, nested_frame;
EXCEPTION_RECORD newrec;
DWORD res, c;
@@ -195,7 +195,7 @@
frame = NtCurrentTeb()->except;
nested_frame = NULL;
- while (frame != (PEXCEPTION_FRAME)0xFFFFFFFF)
+ while (frame != (PEXCEPTION_REGISTRATION_RECORD)~0UL)
{
/* Check frame address */
if (((void*)frame < NtCurrentTeb()->stack_low) ||
@@ -250,12 +250,12 @@
*/
DEFINE_REGS_ENTRYPOINT_4( RtlUnwind, EXC_RtlUnwind,
PVOID, PVOID, PEXCEPTION_RECORD, PVOID );
-void WINAPI EXC_RtlUnwind( PEXCEPTION_FRAME pEndFrame, LPVOID unusedEip,
+void WINAPI EXC_RtlUnwind( PEXCEPTION_REGISTRATION_RECORD pEndFrame, LPVOID unusedEip,
PEXCEPTION_RECORD pRecord, DWORD returnEax,
CONTEXT *context )
{
EXCEPTION_RECORD record, newrec;
- PEXCEPTION_FRAME frame, dispatch;
+ PEXCEPTION_REGISTRATION_RECORD frame, dispatch;
#ifdef __i386__
context->Eax = returnEax;
@@ -278,7 +278,7 @@
/* get chain of exception frames */
frame = NtCurrentTeb()->except;
- while ((frame != (PEXCEPTION_FRAME)0xffffffff) && (frame != pEndFrame))
+ while ((frame != (PEXCEPTION_REGISTRATION_RECORD)~0UL) && (frame != pEndFrame))
{
/* Check frame address */
if (pEndFrame && (frame > pEndFrame))
@@ -357,8 +357,8 @@
*
* Exception handler for exception blocks declared in Wine code.
*/
-DWORD __wine_exception_handler( EXCEPTION_RECORD *record, EXCEPTION_FRAME *frame,
- CONTEXT *context, LPVOID pdispatcher )
+DWORD __wine_exception_handler( EXCEPTION_RECORD *record, EXCEPTION_REGISTRATION_RECORD *frame,
+ CONTEXT *context, EXCEPTION_REGISTRATION_RECORD **pdispatcher )
{
__WINE_FRAME *wine_frame = (__WINE_FRAME *)frame;
@@ -397,8 +397,8 @@
*
* Exception handler for try/finally blocks declared in Wine code.
*/
-DWORD __wine_finally_handler( EXCEPTION_RECORD *record, EXCEPTION_FRAME *frame,
- CONTEXT *context, LPVOID pdispatcher )
+DWORD __wine_finally_handler( EXCEPTION_RECORD *record, EXCEPTION_REGISTRATION_RECORD *frame,
+ CONTEXT *context, EXCEPTION_REGISTRATION_RECORD **pdispatcher )
{
if (record->ExceptionFlags & (EH_UNWINDING | EH_EXIT_UNWIND))
{
diff --git a/include/stackframe.h b/include/stackframe.h
index c880adb..80e3f39 100644
--- a/include/stackframe.h
+++ b/include/stackframe.h
@@ -34,7 +34,7 @@
{
DWORD restore_addr; /* 00 return address for restoring code selector */
DWORD codeselector; /* 04 code selector to restore */
- EXCEPTION_FRAME frame; /* 08 Exception frame */
+ EXCEPTION_REGISTRATION_RECORD frame; /* 08 Exception frame */
SEGPTR frame16; /* 10 16-bit frame from last CallFrom16() */
DWORD edi; /* 14 saved registers */
DWORD esi; /* 18 */
diff --git a/include/thread.h b/include/thread.h
index 37fcc5e..f955336 100644
--- a/include/thread.h
+++ b/include/thread.h
@@ -24,7 +24,6 @@
#include "winternl.h"
#include "wine/windef16.h"
-struct __EXCEPTION_FRAME;
struct _SECURITY_ATTRIBUTES;
struct tagSYSLEVEL;
struct server_buffer_info;
@@ -55,7 +54,7 @@
typedef struct _TEB
{
/* start of NT_TIB */
- struct __EXCEPTION_FRAME *except; /* 12- 00 Head of exception handling chain */
+ EXCEPTION_REGISTRATION_RECORD *except; /* 12- 00 Head of exception handling chain */
void *stack_top; /* 12- 04 Top of thread stack */
void *stack_low; /* 12- 08 Stack low-water mark */
HTASK16 htask16; /* 1-- 0c Win16 task handle */
diff --git a/include/wine/exception.h b/include/wine/exception.h
index eca4527..c5b58ec 100644
--- a/include/wine/exception.h
+++ b/include/wine/exception.h
@@ -86,7 +86,7 @@
__wine_pop_frame( &__f.frame ); \
break; \
} else { \
- __f.frame.Handler = (PEXCEPTION_HANDLER)__wine_exception_handler; \
+ __f.frame.Handler = __wine_exception_handler; \
__f.u.filter = (func); \
__wine_push_frame( &__f.frame ); \
if (setjmp( __f.jmp)) { \
@@ -107,7 +107,7 @@
(func)(1); \
break; \
} else { \
- __f.frame.Handler = (PEXCEPTION_HANDLER)__wine_finally_handler; \
+ __f.frame.Handler = __wine_finally_handler; \
__f.u.finally_func = (func); \
__wine_push_frame( &__f.frame ); \
__first = 0; \
@@ -127,7 +127,7 @@
typedef struct __tagWINE_FRAME
{
- EXCEPTION_FRAME frame;
+ EXCEPTION_REGISTRATION_RECORD frame;
union
{
/* exception data */
@@ -141,17 +141,17 @@
const struct __tagWINE_FRAME *ExceptionRecord;
} __WINE_FRAME;
-extern DWORD __wine_exception_handler( PEXCEPTION_RECORD record, EXCEPTION_FRAME *frame,
- CONTEXT *context, LPVOID pdispatcher );
-extern DWORD __wine_finally_handler( PEXCEPTION_RECORD record, EXCEPTION_FRAME *frame,
- CONTEXT *context, LPVOID pdispatcher );
+extern DWORD __wine_exception_handler( PEXCEPTION_RECORD record, EXCEPTION_REGISTRATION_RECORD *frame,
+ CONTEXT *context, EXCEPTION_REGISTRATION_RECORD **pdispatcher );
+extern DWORD __wine_finally_handler( PEXCEPTION_RECORD record, EXCEPTION_REGISTRATION_RECORD *frame,
+ CONTEXT *context, EXCEPTION_REGISTRATION_RECORD **pdispatcher );
#endif /* USE_COMPILER_EXCEPTIONS */
-static inline EXCEPTION_FRAME * WINE_UNUSED __wine_push_frame( EXCEPTION_FRAME *frame )
+static inline EXCEPTION_REGISTRATION_RECORD *__wine_push_frame( EXCEPTION_REGISTRATION_RECORD *frame )
{
#if defined(__GNUC__) && defined(__i386__)
- EXCEPTION_FRAME *prev;
+ EXCEPTION_REGISTRATION_RECORD *prev;
__asm__ __volatile__(".byte 0x64\n\tmovl (0),%0"
"\n\tmovl %0,(%1)"
"\n\t.byte 0x64\n\tmovl %1,(0)"
@@ -165,7 +165,7 @@
#endif
}
-static inline EXCEPTION_FRAME * WINE_UNUSED __wine_pop_frame( EXCEPTION_FRAME *frame )
+static inline EXCEPTION_REGISTRATION_RECORD *__wine_pop_frame( EXCEPTION_REGISTRATION_RECORD *frame )
{
#if defined(__GNUC__) && defined(__i386__)
__asm__ __volatile__(".byte 0x64\n\tmovl %0,(0)"
diff --git a/include/winnt.h b/include/winnt.h
index 667d193..ac7e9f2 100644
--- a/include/winnt.h
+++ b/include/winnt.h
@@ -1570,16 +1570,16 @@
* larger exception frames for their own use.
*/
-struct __EXCEPTION_FRAME;
+struct _EXCEPTION_REGISTRATION_RECORD;
-typedef DWORD (*PEXCEPTION_HANDLER)(PEXCEPTION_RECORD,struct __EXCEPTION_FRAME*,
- PCONTEXT,struct __EXCEPTION_FRAME **);
+typedef DWORD (*PEXCEPTION_HANDLER)(PEXCEPTION_RECORD,struct _EXCEPTION_REGISTRATION_RECORD*,
+ PCONTEXT,struct _EXCEPTION_REGISTRATION_RECORD **);
-typedef struct __EXCEPTION_FRAME
+typedef struct _EXCEPTION_REGISTRATION_RECORD
{
- struct __EXCEPTION_FRAME *Prev;
+ struct _EXCEPTION_REGISTRATION_RECORD *Prev;
PEXCEPTION_HANDLER Handler;
-} EXCEPTION_FRAME, *PEXCEPTION_FRAME;
+} EXCEPTION_REGISTRATION_RECORD, *PEXCEPTION_REGISTRATION_RECORD;
/*
* function pointer to a exception filter
diff --git a/programs/winedbg/info.c b/programs/winedbg/info.c
index ac2ab2f..a6dad14 100644
--- a/programs/winedbg/info.c
+++ b/programs/winedbg/info.c
@@ -570,7 +570,7 @@
while (next_frame != (void *)-1)
{
- EXCEPTION_FRAME frame;
+ EXCEPTION_REGISTRATION_RECORD frame;
DEBUG_Printf( DBG_CHN_MESG, "%p: ", next_frame );
if (!DEBUG_READ_MEM(next_frame, &frame, sizeof(frame)))