diff options
| author | OatmealDome <julian@oatmealdome.me> | 2021-08-09 21:29:50 -0400 |
|---|---|---|
| committer | OatmealDome <julian@oatmealdome.me> | 2021-08-09 21:29:50 -0400 |
| commit | fba8bfe6a60edd93161189c756d42bc861ac8a81 (patch) | |
| tree | db2d30773a78a150808ac213478fffd5485255ed /Source | |
| parent | 25c85d827aed098d2536f09a68c23780346cd4e1 (diff) | |
WiimoteReal: Check for error before discarding report
Diffstat (limited to 'Source')
| -rw-r--r-- | Source/Core/Core/HW/WiimoteReal/WiimoteReal.cpp | 13 |
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() |
