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()