UWP: CoreWindow NULL check

We need to make sure CoreWindow isn't NULL before checking key states otherwise access violation will occur and cause the app to crash. This commit fixes running Dolphin core in particular and tested on both desktop UWP and Xbox One.
This commit is contained in:
OsirizX 2019-06-29 00:21:59 -07:00 committed by GitHub
parent 550ea0f143
commit ba69056361
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -574,7 +574,14 @@ extern "C" {
bool uwp_keyboard_pressed(unsigned key)
{
unsigned sym = rarch_keysym_lut[(enum retro_key)key];
return (CoreWindow::GetForCurrentThread()->GetKeyState((VirtualKey)sym) & CoreVirtualKeyStates::Down) == CoreVirtualKeyStates::Down;
CoreWindow^ window = CoreWindow::GetForCurrentThread();
if (!window)
{
// At times CoreWindow will return NULL while running Dolphin core
// Dolphin core runs on its own CPU thread separate from the UI-thread and so we must do a check for this.
return false;
}
return (window->GetKeyState((VirtualKey)sym) & CoreVirtualKeyStates::Down) == CoreVirtualKeyStates::Down;
}
int16_t uwp_mouse_state(unsigned port, unsigned id, bool screen)