4 modified files
reactos/include/pseh
diff -u -r1.4 -r1.5
--- framebased.h 3 Jun 2004 04:14:07 -0000 1.4
+++ framebased.h 3 Jun 2004 22:19:09 -0000 1.5
@@ -99,7 +99,7 @@
}; \
\
_SEHFrame_t _SEHFrame; \
- _SEHPortableFrame_t * _SEHPortableFrame; \
+ volatile _SEHPortableFrame_t * _SEHPortableFrame; \
\
_SEHFrame.SEH_Header.SPF_Handlers = &_SEHHandlers; \
\
reactos/lib/pseh
diff -u -r1.2 -r1.3
--- framebased.c 2 Jun 2004 19:22:06 -0000 1.2
+++ framebased.c 3 Jun 2004 22:19:09 -0000 1.3
@@ -33,6 +33,10 @@
extern void __cdecl _SEHUnregisterFrame(const _SEHRegistration_t *);
extern void __cdecl _SEHUnwind(_SEHPortableFrame_t *);
+/* Borland C++ uses a different decoration (i.e. none) for stdcall functions */
+extern void __stdcall RtlUnwind(void *, void *, void *, void *);
+void const * _SEHRtlUnwind = RtlUnwind;
+
__declspec(noreturn) void __cdecl _SEHCallHandler(_SEHPortableFrame_t * frame)
{
frame->SPF_Handling = 1;
reactos/lib/pseh/i386
diff -u -r1.3 -r1.4
--- framebased.asm 3 Jun 2004 04:14:07 -0000 1.3
+++ framebased.asm 3 Jun 2004 22:19:10 -0000 1.4
@@ -44,7 +44,7 @@
global __SEHUnwind
__SEHUnwind:
- extern _RtlUnwind@16
+ extern __SEHRtlUnwind
mov ecx, [esp+4]
@@ -53,11 +53,12 @@
push edi
push ebx
+ xor eax, eax
push eax
push eax
push eax
push ecx
- call _RtlUnwind@16
+ call [__SEHRtlUnwind]
pop ebx
pop edi
reactos/lib/pseh/i386
diff -u -r1.1 -r1.2
--- setjmp.asm 3 Jun 2004 02:23:34 -0000 1.1
+++ setjmp.asm 3 Jun 2004 22:19:10 -0000 1.2
@@ -21,6 +21,8 @@
cpu 486
segment .text use32
+; Note: the undecorated names are for Borland C++ (and possibly other compilers
+; using the OMF format)
global SEHSetJmp
global __SEHSetJmp
SEHSetJmp:
CVSspam 0.2.8