reactos/include/pseh
diff -u -r1.11 -r1.12
--- framebased.h 1 Dec 2004 19:20:53 -0000 1.11
+++ framebased.h 5 Dec 2004 06:05:51 -0000 1.12
@@ -79,6 +79,8 @@
struct __SEHPortableFrame * _SEHPortableFrame \
)
+#define _SEH_STATIC_FILTER(ACTION_) ((_SEHFilter_t)((ACTION_) + 2))
+
#define _SEH_FINALLY(NAME_) \
void __stdcall NAME_ \
( \
@@ -88,7 +90,7 @@
#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 @@
#define _SEH_TRY_HANDLE_FINALLY(FINALLY_) \
_SEH_TRY_FILTER_FINALLY \
( \
- (_SEHFilter_t)(_SEH_EXECUTE_HANDLER + 1), \
+ _SEH_STATIC_FILTER(_SEH_EXECUTE_HANDLER), \
(FINALLY_) \
)
reactos/lib/pseh
diff -u -r1.5 -r1.6
--- framebased.c 1 Jul 2004 02:40:23 -0000 1.5
+++ framebased.c 5 Dec 2004 06:05:52 -0000 1.6
@@ -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 @@
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;
}