Alexandre Julliard : msvcrt: Define __CxxLongjmpUnwind for i386 only.
Alexandre Julliard
julliard at wine.codeweavers.com
Mon Dec 18 05:34:28 CST 2006
Module: wine
Branch: master
Commit: 0689e9ea0589ff9df4db8affba589c79629d5010
URL: http://source.winehq.org/git/wine.git/?a=commit;h=0689e9ea0589ff9df4db8affba589c79629d5010
Author: Alexandre Julliard <julliard at winehq.org>
Date: Sat Dec 16 17:37:20 2006 +0100
msvcrt: Define __CxxLongjmpUnwind for i386 only.
---
dlls/msvcrt/cppexcept.c | 29 +++++++++++++++--------------
dlls/msvcrt/msvcrt.spec | 2 +-
2 files changed, 16 insertions(+), 15 deletions(-)
diff --git a/dlls/msvcrt/cppexcept.c b/dlls/msvcrt/cppexcept.c
index e556353..ec1f364 100644
--- a/dlls/msvcrt/cppexcept.c
+++ b/dlls/msvcrt/cppexcept.c
@@ -424,6 +424,21 @@ __ASM_GLOBAL_FUNC( __CxxFrameHandler,
"add $28,%esp\n\t"
"ret" );
+
+/*********************************************************************
+ * __CxxLongjmpUnwind (MSVCRT.@)
+ *
+ * Callback meant to be used as UnwindFunc for setjmp/longjmp.
+ */
+void __stdcall __CxxLongjmpUnwind( const struct MSVCRT___JUMP_BUFFER *buf )
+{
+ cxx_exception_frame *frame = (cxx_exception_frame *)buf->Registration;
+ const cxx_function_descr *descr = (const cxx_function_descr *)buf->UnwindData[0];
+
+ TRACE( "unwinding frame %p descr %p trylevel %ld\n", frame, descr, buf->TryLevel );
+ cxx_local_unwind( frame, descr, buf->TryLevel );
+}
+
#endif /* __i386__ */
/*********************************************************************
@@ -469,17 +484,3 @@ unsigned int CDECL __CxxQueryExceptionSi
{
return sizeof(cxx_exception_type);
}
-
-/*********************************************************************
- * __CxxLongjmpUnwind (MSVCRT.@)
- *
- * Callback meant to be used as UnwindFunc for setjmp/longjmp.
- */
-void __stdcall __CxxLongjmpUnwind( const struct MSVCRT___JUMP_BUFFER *buf )
-{
- cxx_exception_frame *frame = (cxx_exception_frame *)buf->Registration;
- const cxx_function_descr *descr = (const cxx_function_descr *)buf->UnwindData[0];
-
- TRACE( "unwinding frame %p descr %p trylevel %ld\n", frame, descr, buf->TryLevel );
- cxx_local_unwind( frame, descr, buf->TryLevel );
-}
diff --git a/dlls/msvcrt/msvcrt.spec b/dlls/msvcrt/msvcrt.spec
index f236c24..59e21f6 100644
--- a/dlls/msvcrt/msvcrt.spec
+++ b/dlls/msvcrt/msvcrt.spec
@@ -76,7 +76,7 @@
@ cdecl _Strftime(str long str ptr ptr)
@ cdecl _XcptFilter(long ptr)
@ cdecl -i386 -norelay __CxxFrameHandler(ptr ptr ptr ptr)
-@ stdcall __CxxLongjmpUnwind(ptr)
+@ stdcall -i386 __CxxLongjmpUnwind(ptr)
@ cdecl __RTCastToVoid(ptr) MSVCRT___RTCastToVoid
@ cdecl __RTDynamicCast(ptr long ptr ptr long) MSVCRT___RTDynamicCast
@ cdecl __RTtypeid(ptr) MSVCRT___RTtypeid
More information about the wine-cvs
mailing list