summaryrefslogtreecommitdiff
path: root/Source
diff options
context:
space:
mode:
authorOatmealDome <julian@oatmealdome.me>2021-08-09 21:29:50 -0400
committerOatmealDome <julian@oatmealdome.me>2021-08-09 21:29:50 -0400
commitfba8bfe6a60edd93161189c756d42bc861ac8a81 (patch)
treedb2d30773a78a150808ac213478fffd5485255ed /Source
parent25c85d827aed098d2536f09a68c23780346cd4e1 (diff)
WiimoteReal: Check for error before discarding report
Diffstat (limited to 'Source')
-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 92dbaeeef0..a1dcf4877c 100644
--- a/Source/Core/Core/HW/WiimoteReal/WiimoteReal.cpp
+++ b/Source/Core/Core/HW/WiimoteReal/WiimoteReal.cpp
@@ -281,6 +281,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;
@@ -298,11 +306,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()