summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.travis.yml2
-rw-r--r--platform/windows/joypad_windows.cpp8
2 files changed, 8 insertions, 2 deletions
diff --git a/.travis.yml b/.travis.yml
index 9987fcbe56..58c3733d22 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -128,7 +128,7 @@ install:
- if [ "$PLATFORM" = "javascript" ]; then
git clone --depth 1 "https://github.com/emscripten-core/emsdk.git";
./emsdk/emsdk install latest;
- ./emsdk/emsdk activate latest;
+ ./emsdk/emsdk activate --no-embedded latest;
fi
- if [ "$STATIC_CHECKS" = "yes" ]; then
unset SCONS_CACHE;
diff --git a/platform/windows/joypad_windows.cpp b/platform/windows/joypad_windows.cpp
index 20662ec591..a6ec95ea10 100644
--- a/platform/windows/joypad_windows.cpp
+++ b/platform/windows/joypad_windows.cpp
@@ -76,12 +76,16 @@ JoypadWindows::JoypadWindows(HWND *hwnd) {
ERR_PRINT("The Windows DirectInput subsystem could not allocate sufficient memory.");
ERR_PRINT("Rebooting your PC may solve this issue.");
}
+ // Ensure dinput is still a nullptr.
+ dinput = nullptr;
}
}
JoypadWindows::~JoypadWindows() {
close_joypad();
- dinput->Release();
+ if (dinput) {
+ dinput->Release();
+ }
unload_xinput();
}
@@ -139,6 +143,7 @@ bool JoypadWindows::is_xinput_device(const GUID *p_guid) {
}
bool JoypadWindows::setup_dinput_joypad(const DIDEVICEINSTANCE *instance) {
+ ERR_FAIL_NULL_V_MSG(dinput, false, "DirectInput not initialized. Rebooting your PC may solve this issue.");
HRESULT hr;
int num = input->get_unused_joy_id();
@@ -270,6 +275,7 @@ void JoypadWindows::close_joypad(int id) {
}
void JoypadWindows::probe_joypads() {
+ ERR_FAIL_NULL_MSG(dinput, "DirectInput not initialized. Rebooting your PC may solve this issue.");
DWORD dwResult;
for (DWORD i = 0; i < XUSER_MAX_COUNT; i++) {
ZeroMemory(&x_joypads[i].state, sizeof(XINPUT_STATE));