Alexandre Julliard : krnl386.exe: Release the Win16 lock when loading a 32-bit dll.
Alexandre Julliard
julliard at wine.codeweavers.com
Fri May 29 05:29:48 CDT 2015
Module: wine
Branch: master
Commit: 3a2e7d1a3dbf42a0385e5c0f64d79e9ea054252e
URL: http://source.winehq.org/git/wine.git/?a=commit;h=3a2e7d1a3dbf42a0385e5c0f64d79e9ea054252e
Author: Alexandre Julliard <julliard at winehq.org>
Date: Fri May 29 15:02:45 2015 +0900
krnl386.exe: Release the Win16 lock when loading a 32-bit dll.
---
dlls/krnl386.exe16/ne_module.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/dlls/krnl386.exe16/ne_module.c b/dlls/krnl386.exe16/ne_module.c
index c0e1a98..70f8a46 100644
--- a/dlls/krnl386.exe16/ne_module.c
+++ b/dlls/krnl386.exe16/ne_module.c
@@ -981,8 +981,11 @@ static HINSTANCE16 MODULE_LoadModule16( LPCSTR libname, BOOL implicit, BOOL lib_
if (strlen(basename) < sizeof(dllname)-6)
{
+ DWORD count;
char *q;
+ ReleaseThunkLock( &count );
+
strcpy( dllname, basename );
q = strrchr( dllname, '.' );
if (!q) strcat( dllname, ".dll" );
@@ -1011,6 +1014,7 @@ static HINSTANCE16 MODULE_LoadModule16( LPCSTR libname, BOOL implicit, BOOL lib_
{
WARN( "couldn't load owner %s for 16-bit dll %s\n", main_module, dllname );
FreeLibrary( mod32 );
+ RestoreThunkLock( count );
return ERROR_FILE_NOT_FOUND;
}
/* check if module was loaded native */
@@ -1023,6 +1027,7 @@ static HINSTANCE16 MODULE_LoadModule16( LPCSTR libname, BOOL implicit, BOOL lib_
}
}
}
+ RestoreThunkLock( count );
/* loading the 32-bit library can have the side effect of loading the module */
/* if so, simply incr the ref count and return the module */
More information about the wine-cvs
mailing list