mirror of
https://github.com/ApfelTeeSaft/reactos.git
synced 2026-09-03 12:23:25 +00:00
[CRT]
__wine_push_frame and __wine_pop_frame are only used in x86 specific code in cppexcept.c. Move them there instead of trying to implement them for other architectures. svn path=/branches/ros-amd64-bringup/; revision=45053
This commit is contained in:
@@ -39,6 +39,19 @@ DWORD CDECL cxx_frame_handler( PEXCEPTION_RECORD rec, cxx_exception_frame* frame
|
||||
const cxx_function_descr *descr,
|
||||
EXCEPTION_REGISTRATION_RECORD* nested_frame, int nested_trylevel );
|
||||
|
||||
static inline EXCEPTION_REGISTRATION_RECORD *__wine_push_frame( EXCEPTION_REGISTRATION_RECORD *frame )
|
||||
{
|
||||
frame->Next = (struct _EXCEPTION_REGISTRATION_RECORD *)__readfsdword(0);
|
||||
__writefsdword(0, (unsigned long)frame);
|
||||
return frame->Next;
|
||||
}
|
||||
|
||||
static inline EXCEPTION_REGISTRATION_RECORD *__wine_pop_frame( EXCEPTION_REGISTRATION_RECORD *frame )
|
||||
{
|
||||
__writefsdword(0, (unsigned long)frame->Next);
|
||||
return frame->Next;
|
||||
}
|
||||
|
||||
/* call a function with a given ebp */
|
||||
static inline void *call_ebp_func( void *func, void *ebp )
|
||||
{
|
||||
|
||||
@@ -59,32 +59,6 @@
|
||||
#pragma warning(disable:4733)
|
||||
#endif
|
||||
|
||||
static inline EXCEPTION_REGISTRATION_RECORD *__wine_push_frame( EXCEPTION_REGISTRATION_RECORD *frame )
|
||||
{
|
||||
#if defined(__i386__)
|
||||
frame->Next = (struct _EXCEPTION_REGISTRATION_RECORD *)__readfsdword(0);
|
||||
__writefsdword(0, (unsigned long)frame);
|
||||
return frame->Next;
|
||||
#else
|
||||
NT_TIB *teb = (NT_TIB *)NtCurrentTeb();
|
||||
frame->Next = teb->ExceptionList;
|
||||
teb->ExceptionList = frame;
|
||||
return frame->Next;
|
||||
#endif
|
||||
}
|
||||
|
||||
static inline EXCEPTION_REGISTRATION_RECORD *__wine_pop_frame( EXCEPTION_REGISTRATION_RECORD *frame )
|
||||
{
|
||||
#if defined(__i386__)
|
||||
__writefsdword(0, (unsigned long)frame->Next);
|
||||
return frame->Next;
|
||||
#else
|
||||
NT_TIB *teb = (NT_TIB *)NtCurrentTeb();
|
||||
teb->ExceptionList = frame->Next;
|
||||
return frame->Next;
|
||||
#endif
|
||||
}
|
||||
|
||||
#ifdef _MSC_VER
|
||||
#pragma warning(pop)
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user