mirror of
https://github.com/reactos/reactos.git
synced 2025-02-25 01:39:30 +00:00
KJK:Hyperion: new macro _SEH_STATIC_FILTER, some changes
svn path=/trunk/; revision=11942
This commit is contained in:
parent
bddec4f91a
commit
5f6525bc2b
2 changed files with 9 additions and 6 deletions
|
@ -79,6 +79,8 @@ static __declspec(noreturn) __inline void __stdcall _SEHCompilerSpecificHandler
|
|||
struct __SEHPortableFrame * _SEHPortableFrame \
|
||||
)
|
||||
|
||||
#define _SEH_STATIC_FILTER(ACTION_) ((_SEHFilter_t)((ACTION_) + 2))
|
||||
|
||||
#define _SEH_FINALLY(NAME_) \
|
||||
void __stdcall NAME_ \
|
||||
( \
|
||||
|
@ -88,7 +90,7 @@ static __declspec(noreturn) __inline void __stdcall _SEHCompilerSpecificHandler
|
|||
#define _SEH_TRY_FINALLY(FINALLY_) \
|
||||
_SEH_TRY_FILTER_FINALLY \
|
||||
( \
|
||||
(_SEHFilter_t)(_SEH_CONTINUE_SEARCH + 1), \
|
||||
_SEH_STATIC_FILTER(_SEH_CONTINUE_SEARCH), \
|
||||
(FINALLY_) \
|
||||
)
|
||||
|
||||
|
@ -100,7 +102,7 @@ static __declspec(noreturn) __inline void __stdcall _SEHCompilerSpecificHandler
|
|||
#define _SEH_TRY_HANDLE_FINALLY(FINALLY_) \
|
||||
_SEH_TRY_FILTER_FINALLY \
|
||||
( \
|
||||
(_SEHFilter_t)(_SEH_EXECUTE_HANDLER + 1), \
|
||||
_SEH_STATIC_FILTER(_SEH_EXECUTE_HANDLER), \
|
||||
(FINALLY_) \
|
||||
)
|
||||
|
||||
|
|
|
@ -27,6 +27,7 @@
|
|||
#include <pseh/framebased/internal.h>
|
||||
#include <pseh/excpt.h>
|
||||
#include <excpt.h>
|
||||
#include <pseh/framebased.h>
|
||||
|
||||
/* Assembly helpers, see i386/framebased.asm */
|
||||
extern void __cdecl _SEHCleanHandlerEnvironment(void);
|
||||
|
@ -77,11 +78,11 @@ int __cdecl _SEHFrameHandler
|
|||
|
||||
switch((UINT_PTR)frame->SPF_Handlers->SH_Filter)
|
||||
{
|
||||
case _SEH_EXECUTE_HANDLER + 1:
|
||||
case _SEH_CONTINUE_SEARCH + 1:
|
||||
case _SEH_CONTINUE_EXECUTION + 1:
|
||||
case (UINT_PTR)_SEH_STATIC_FILTER(_SEH_EXECUTE_HANDLER):
|
||||
case (UINT_PTR)_SEH_STATIC_FILTER(_SEH_CONTINUE_SEARCH):
|
||||
case (UINT_PTR)_SEH_STATIC_FILTER(_SEH_CONTINUE_EXECUTION):
|
||||
{
|
||||
ret = (int)((UINT_PTR)frame->SPF_Handlers->SH_Filter) - 1;
|
||||
ret = (int)((UINT_PTR)frame->SPF_Handlers->SH_Filter) - 2;
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue