diff --git a/dlls/ntdll/sec.c b/dlls/ntdll/sec.c index fa435eba8c1..7fb4b65683f 100644 --- a/dlls/ntdll/sec.c +++ b/dlls/ntdll/sec.c @@ -37,7 +37,6 @@ #include "winnls.h" #include "wine/debug.h" #include "winerror.h" -#include "stackframe.h" #include "winternl.h" #include "winreg.h" diff --git a/dlls/ntdll/signal_i386.c b/dlls/ntdll/signal_i386.c index 1b0ae8c4653..1821c06081a 100644 --- a/dlls/ntdll/signal_i386.c +++ b/dlls/ntdll/signal_i386.c @@ -403,7 +403,6 @@ typedef struct #define T_UNKNOWN (-1) /* Unknown fault (TRAP_sig not defined) */ #include "wine/exception.h" -#include "stackframe.h" #include "global.h" #include "miscemu.h" #include "syslevel.h" diff --git a/dlls/ntdll/signal_powerpc.c b/dlls/ntdll/signal_powerpc.c index 94e18234873..ad2bb21876e 100644 --- a/dlls/ntdll/signal_powerpc.c +++ b/dlls/ntdll/signal_powerpc.c @@ -54,7 +54,6 @@ #include "wine/library.h" #include "wine/exception.h" #include "selectors.h" -#include "stackframe.h" #include "global.h" #include "ntdll_misc.h" #include "miscemu.h" diff --git a/dlls/ntdll/signal_sparc.c b/dlls/ntdll/signal_sparc.c index 2c7e86d8d18..897b41d8c9f 100644 --- a/dlls/ntdll/signal_sparc.c +++ b/dlls/ntdll/signal_sparc.c @@ -36,7 +36,6 @@ #include "wine/exception.h" #include "global.h" -#include "stackframe.h" #include "ntdll_misc.h" #include "wine/debug.h" diff --git a/dlls/winedos/dosvm.c b/dlls/winedos/dosvm.c index 6ebf6e5f521..24dec2f2698 100644 --- a/dlls/winedos/dosvm.c +++ b/dlls/winedos/dosvm.c @@ -50,7 +50,7 @@ #include "miscemu.h" #include "dosexe.h" #include "dosvm.h" -#include "stackframe.h" +#include "thread.h" #include "wine/debug.h" #include "excpt.h" diff --git a/dlls/winedos/int31.c b/dlls/winedos/int31.c index 7b952dc6f86..2201db3fcb9 100644 --- a/dlls/winedos/int31.c +++ b/dlls/winedos/int31.c @@ -32,7 +32,7 @@ #include "excpt.h" #include "wine/debug.h" #include "wine/exception.h" -#include "stackframe.h" +#include "thread.h" #include "toolhelp.h" WINE_DEFAULT_DEBUG_CHANNEL(int31); diff --git a/dlls/winedos/relay.c b/dlls/winedos/relay.c index ea5df47fede..ab3f1277ed1 100644 --- a/dlls/winedos/relay.c +++ b/dlls/winedos/relay.c @@ -19,7 +19,7 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #include "dosexe.h" -#include "stackframe.h" +#include "thread.h" #include "wine/debug.h" #include "builtin16.h" diff --git a/memory/selector.c b/memory/selector.c index 7de71c6bb5e..831983c799a 100644 --- a/memory/selector.c +++ b/memory/selector.c @@ -27,7 +27,6 @@ #include "wine/winbase16.h" #include "miscemu.h" #include "selectors.h" -#include "stackframe.h" #include "wine/server.h" #include "wine/debug.h" #include "toolhelp.h" diff --git a/relay32/relay386.c b/relay32/relay386.c index 1fab09a5f1e..a9290aeb2bd 100644 --- a/relay32/relay386.c +++ b/relay32/relay386.c @@ -26,7 +26,6 @@ #include #include "winternl.h" -#include "stackframe.h" #include "wine/unicode.h" #include "wine/debug.h" #include "ntdll_misc.h" @@ -525,7 +524,8 @@ void WINAPI RELAY_DoCallFrom32Regs( CONTEXT86 *context ) WORD nb_args = relay->args / sizeof(int); /* remove extra stuff from the stack */ - context->Eip = stack32_pop(context); + context->Eip = *(DWORD *)context->Esp; + context->Esp += sizeof(DWORD); args = (int *)context->Esp; if (relay->ret == 0xc2) /* stdcall */ context->Esp += nb_args * sizeof(int); diff --git a/scheduler/syslevel.c b/scheduler/syslevel.c index ca23f71326c..9f9b540fc7b 100644 --- a/scheduler/syslevel.c +++ b/scheduler/syslevel.c @@ -25,8 +25,9 @@ #endif #include #include "winternl.h" +#include "wine/winbase16.h" #include "syslevel.h" -#include "stackframe.h" +#include "thread.h" #include "wine/library.h" #include "wine/debug.h" diff --git a/scheduler/thread.c b/scheduler/thread.c index 81b2d6dee6c..45435c1e8ec 100644 --- a/scheduler/thread.c +++ b/scheduler/thread.c @@ -40,7 +40,6 @@ #include "selectors.h" #include "winnt.h" #include "wine/server.h" -#include "stackframe.h" #include "wine/debug.h" #include "winnls.h" diff --git a/win32/device.c b/win32/device.c index 45245d48169..0cec32d1153 100644 --- a/win32/device.c +++ b/win32/device.c @@ -36,12 +36,12 @@ #include "winbase.h" #include "winreg.h" #include "winerror.h" +#include "winnls.h" #include "file.h" #include "winioctl.h" #include "winnt.h" #include "msdos.h" #include "miscemu.h" -#include "stackframe.h" #include "wine/server.h" #include "wine/debug.h" #include "callback.h" @@ -334,6 +334,13 @@ LPCSTR VMM_Service_Name[N_VMM_SERVICE] = #define PCC_NOLIN 0x10000000 /* don't map to any linear address */ +/* Pop a DWORD from the 32-bit stack */ +static inline DWORD stack32_pop( CONTEXT86 *context ) +{ + DWORD ret = *(DWORD *)context->Esp; + context->Esp += sizeof(DWORD); + return ret; +} HANDLE DEVICE_Open( LPCWSTR filenameW, DWORD access, LPSECURITY_ATTRIBUTES sa ) { diff --git a/win32/except.c b/win32/except.c index 8e6a5bcc60e..d7cb912febb 100644 --- a/win32/except.c +++ b/win32/except.c @@ -47,7 +47,6 @@ #include "wine/exception.h" #include "wine/library.h" #include "thread.h" -#include "stackframe.h" #include "excpt.h" #include "wine/server.h" #include "wine/unicode.h" diff --git a/windows/win.c b/windows/win.c index 6abf4a9923d..6a74b01faba 100644 --- a/windows/win.c +++ b/windows/win.c @@ -38,7 +38,6 @@ #include "message.h" #include "winpos.h" #include "winerror.h" -#include "stackframe.h" #include "wine/debug.h" WINE_DEFAULT_DEBUG_CHANNEL(win);