Module: wine Branch: master Commit: 0689e9ea0589ff9df4db8affba589c79629d5010 URL: http://source.winehq.org/git/wine.git/?a=commit;h=0689e9ea0589ff9df4db8affba...
Author: Alexandre Julliard julliard@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