diff --git a/common/include/input_hub.cpp b/common/include/input_hub.cpp index 0de2048319dea644314a6e1a5b2cfb478d029b8c..55704f92fee64e95fc9a025cb5b995beddd96c24 100644 --- a/common/include/input_hub.cpp +++ b/common/include/input_hub.cpp @@ -1087,14 +1087,12 @@ int32_t InputHub::ReadNotifyLocked() { size_t eventSize = 0; size_t eventPos = 0; - while (res >= sizeof(*event)) { - if (eventPos < static_cast(EVENT_BUFFER_MAX)) { - event = reinterpret_cast(eventBuf + eventPos); - JudgeDeviceOpenOrClose(*event); - eventSize = sizeof(*event) + event->len; - res -= eventSize; - eventPos += eventSize; - } + while (res >= sizeof(*event) && eventPos < static_cast(EVENT_BUFFER_MAX)) { + event = reinterpret_cast(eventBuf + eventPos); + JudgeDeviceOpenOrClose(*event); + eventSize = sizeof(*event) + event->len; + res -= eventSize; + eventPos += eventSize; } } return DH_SUCCESS;