wineboot: Always attempt setup for all machine types.

Without this, wineboot would bail out on ARM64 in the case where x86_64 WOW is
not available but i386 is. Leaving an incomplete prefix without any clear error.
This commit is contained in:
Billy Laws 2023-07-03 17:36:35 +01:00 committed by Alexandre Julliard
parent 4021dde40d
commit b233cfb33e

View file

@ -1497,21 +1497,24 @@ static void update_wineprefix( BOOL force )
{ {
HWND hwnd = show_wait_window(); HWND hwnd = show_wait_window();
for (;;) for (;;)
{
if (process)
{ {
MSG msg; MSG msg;
DWORD res = MsgWaitForMultipleObjects( 1, &process, FALSE, INFINITE, QS_ALLINPUT ); DWORD res = MsgWaitForMultipleObjects( 1, &process, FALSE, INFINITE, QS_ALLINPUT );
if (res == WAIT_OBJECT_0) if (res != WAIT_OBJECT_0)
{ {
while (PeekMessageW( &msg, 0, 0, 0, PM_REMOVE )) DispatchMessageW( &msg );
continue;
}
CloseHandle( process ); CloseHandle( process );
}
if (!machines[count]) break; if (!machines[count]) break;
if (HIWORD(machines[count]) & 4 /* native machine */) if (HIWORD(machines[count]) & 4 /* native machine */)
process = start_rundll32( inf_path, L"DefaultInstall", IMAGE_FILE_MACHINE_TARGET_HOST ); process = start_rundll32( inf_path, L"DefaultInstall", IMAGE_FILE_MACHINE_TARGET_HOST );
else else
process = start_rundll32( inf_path, L"Wow64Install", LOWORD(machines[count]) ); process = start_rundll32( inf_path, L"Wow64Install", LOWORD(machines[count]) );
count++; count++;
if (!process) break;
}
else while (PeekMessageW( &msg, 0, 0, 0, PM_REMOVE )) DispatchMessageW( &msg );
} }
DestroyWindow( hwnd ); DestroyWindow( hwnd );
} }