mirror of
https://github.com/reactos/wine.git
synced 2024-11-29 06:30:37 +00:00
Fixes winproc deadlock for win16.
This commit is contained in:
parent
8c38f45a7e
commit
dc8cf1002c
@ -269,6 +269,7 @@ static LRESULT WINAPI THUNK_CallWndProc16( WNDPROC16 proc, HWND16 hwnd,
|
|||||||
WND *wndPtr = WIN_FindWndPtr( hwnd );
|
WND *wndPtr = WIN_FindWndPtr( hwnd );
|
||||||
DWORD offset = 0;
|
DWORD offset = 0;
|
||||||
THDB *thdb = THREAD_Current();
|
THDB *thdb = THREAD_Current();
|
||||||
|
int iWndsLocks;
|
||||||
|
|
||||||
/* Window procedures want ax = hInstance, ds = es = ss */
|
/* Window procedures want ax = hInstance, ds = es = ss */
|
||||||
|
|
||||||
@ -309,6 +310,8 @@ static LRESULT WINAPI THUNK_CallWndProc16( WNDPROC16 proc, HWND16 hwnd,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
iWndsLocks = WIN_SuspendWndsLock();
|
||||||
|
|
||||||
args = (WORD *)THREAD_STACK16(thdb) - 5;
|
args = (WORD *)THREAD_STACK16(thdb) - 5;
|
||||||
args[0] = LOWORD(lParam);
|
args[0] = LOWORD(lParam);
|
||||||
args[1] = HIWORD(lParam);
|
args[1] = HIWORD(lParam);
|
||||||
@ -318,6 +321,9 @@ static LRESULT WINAPI THUNK_CallWndProc16( WNDPROC16 proc, HWND16 hwnd,
|
|||||||
|
|
||||||
ret = CallTo16_sreg_( &context, 5 * sizeof(WORD) );
|
ret = CallTo16_sreg_( &context, 5 * sizeof(WORD) );
|
||||||
if (offset) STACK16_POP( thdb, offset );
|
if (offset) STACK16_POP( thdb, offset );
|
||||||
|
|
||||||
|
WIN_RestoreWndsLock(iWndsLocks);
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user