Akihiro Sagawa : user.exe: Release the Win16 lock due to loading 32-bit dlls in CreateWindow.

Alexandre Julliard julliard at wine.codeweavers.com
Thu Aug 6 10:15:44 CDT 2015


Module: wine
Branch: master
Commit: 9ac7bca209e1b11af898d1b393d13c8dc92c66e1
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=9ac7bca209e1b11af898d1b393d13c8dc92c66e1

Author: Akihiro Sagawa <sagawa.aki at gmail.com>
Date:   Mon Aug  3 23:48:47 2015 +0900

user.exe: Release the Win16 lock due to loading 32-bit dlls in CreateWindow.

---

 dlls/user.exe16/message.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/dlls/user.exe16/message.c b/dlls/user.exe16/message.c
index 935b025..b5d9225 100644
--- a/dlls/user.exe16/message.c
+++ b/dlls/user.exe16/message.c
@@ -2648,11 +2648,17 @@ static DWORD wait_message16( DWORD count, const HANDLE *handles, DWORD timeout,
  */
 HWND create_window16( CREATESTRUCTW *cs, LPCWSTR className, HINSTANCE instance, BOOL unicode )
 {
+    DWORD lock;
+    HWND ret;
+
     /* map to module handle */
     if (instance && !((ULONG_PTR)instance >> 16))
         instance = HINSTANCE_32( GetExePtr( HINSTANCE_16(instance) ));
 
-    return wow_handlers32.create_window( cs, className, instance, unicode );
+    ReleaseThunkLock( &lock );
+    ret = wow_handlers32.create_window( cs, className, instance, unicode );
+    RestoreThunkLock( lock );
+    return ret;
 }
 
 




More information about the wine-cvs mailing list