summaryrefslogtreecommitdiff
path: root/Source/Core
diff options
context:
space:
mode:
authorLéo Lam <leo@leolam.fr>2021-09-13 15:26:02 +0200
committerGitHub <noreply@github.com>2021-09-13 15:26:02 +0200
commitee863e67220bfb9bb96c853437f2afebdf854480 (patch)
treec3034794ba3851647c5df91cbabd3c7aa966ec69 /Source/Core
parent5f2a8d98fbadb62648785272bd7324583de2a64d (diff)
parentb9ad1746061b1337bcce714b9a2f56d079e31ed7 (diff)
Merge pull request #10014 from OatmealDome/wiimote-disconnect-crash
WiimoteReal: Fix Wiimote disconnection causing Dolphin to crash on macOS
Diffstat (limited to 'Source/Core')
-rw-r--r--Source/Core/Core/HW/WiimoteReal/WiimoteReal.cpp13
1 files changed, 8 insertions, 5 deletions
diff --git a/Source/Core/Core/HW/WiimoteReal/WiimoteReal.cpp b/Source/Core/Core/HW/WiimoteReal/WiimoteReal.cpp
index b0b03f81ab..b3c5b1f203 100644
--- a/Source/Core/Core/HW/WiimoteReal/WiimoteReal.cpp
+++ b/Source/Core/Core/HW/WiimoteReal/WiimoteReal.cpp
@@ -280,6 +280,14 @@ void Wiimote::Read()
Report rpt(MAX_PAYLOAD);
auto const result = IORead(rpt.data());
+ if (0 == result)
+ {
+ ERROR_LOG_FMT(WIIMOTE, "Wiimote::IORead failed. Disconnecting Wii Remote {}.", m_index + 1);
+ DisconnectInternal();
+
+ return;
+ }
+
// Drop the report if not connected.
if (!m_is_linked)
return;
@@ -297,11 +305,6 @@ void Wiimote::Read()
rpt.resize(result);
m_read_reports.Push(std::move(rpt));
}
- else if (0 == result)
- {
- ERROR_LOG_FMT(WIIMOTE, "Wiimote::IORead failed. Disconnecting Wii Remote {}.", m_index + 1);
- DisconnectInternal();
- }
}
bool Wiimote::Write()