Bugfix: release Win16Lock in WinExec16, CallProc[Ex]32W_16.

This commit is contained in:
Ulrich Weigand 1999-05-03 09:22:55 +00:00 committed by Alexandre Julliard
parent b8fa2962e5
commit 6ce4006137
2 changed files with 12 additions and 1 deletions

View File

@ -434,6 +434,8 @@ static DWORD RELAY_CallProc32W(int Ex)
int aix; int aix;
dbg_decl_str(relay, 1024); dbg_decl_str(relay, 1024);
SYSLEVEL_ReleaseWin16Lock();
VA_START16( valist ); VA_START16( valist );
nrofargs = VA_ARG16( valist, DWORD ); nrofargs = VA_ARG16( valist, DWORD );
argconvmask = VA_ARG16( valist, DWORD ); argconvmask = VA_ARG16( valist, DWORD );
@ -502,6 +504,9 @@ static DWORD RELAY_CallProc32W(int Ex)
TRACE(relay,"%s - returns %08lx\n",dbg_str(relay),ret); TRACE(relay,"%s - returns %08lx\n",dbg_str(relay),ret);
HeapFree( GetProcessHeap(), 0, args ); HeapFree( GetProcessHeap(), 0, args );
SYSLEVEL_RestoreWin16Lock();
return ret; return ret;
} }

View File

@ -805,7 +805,13 @@ static BOOL MODULE_CreateUnixProcess( LPCSTR filename, LPCSTR lpCmdLine,
*/ */
HINSTANCE16 WINAPI WinExec16( LPCSTR lpCmdLine, UINT16 nCmdShow ) HINSTANCE16 WINAPI WinExec16( LPCSTR lpCmdLine, UINT16 nCmdShow )
{ {
return WinExec( lpCmdLine, nCmdShow ); HINSTANCE16 hInst;
SYSLEVEL_ReleaseWin16Lock();
hInst = WinExec( lpCmdLine, nCmdShow );
SYSLEVEL_RestoreWin16Lock();
return hInst;
} }
/*********************************************************************** /***********************************************************************