From fba8bfe6a60edd93161189c756d42bc861ac8a81 Mon Sep 17 00:00:00 2001 From: OatmealDome Date: Mon, 9 Aug 2021 21:29:50 -0400 Subject: [PATCH] WiimoteReal: Check for error before discarding report --- Source/Core/Core/HW/WiimoteReal/WiimoteReal.cpp | 13 ++++++++----- 1 file 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()