From 6dc4da466a302e2a1afe5455ccc65e4f70553014 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rub=C3=A9n=20Norte?= Date: Tue, 29 Apr 2025 10:13:09 -0700 Subject: [PATCH] Refactor event dispatching logic to improve readability and performance slightly (#50991) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/50991 Changelog: [internal] TSIA. Reviewed By: javache Differential Revision: D73853068 fbshipit-source-id: 93e33072e4ce14225cc76ca8daf5d8816489ac7b --- .../ReactCommon/react/renderer/core/EventQueue.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/react-native/ReactCommon/react/renderer/core/EventQueue.cpp b/packages/react-native/ReactCommon/react/renderer/core/EventQueue.cpp index defac2e416e..a83c805287c 100644 --- a/packages/react-native/ReactCommon/react/renderer/core/EventQueue.cpp +++ b/packages/react-native/ReactCommon/react/renderer/core/EventQueue.cpp @@ -34,15 +34,15 @@ void EventQueue::enqueueEvent(RawEvent&& rawEvent) const { auto repeatedEvent = eventQueue_.rend(); for (auto it = eventQueue_.rbegin(); it != eventQueue_.rend(); ++it) { - if (it->type == rawEvent.type && - it->eventTarget == rawEvent.eventTarget && it->isUnique) { - repeatedEvent = it; - break; - } else if (it->eventTarget == rawEvent.eventTarget) { + if (it->eventTarget == rawEvent.eventTarget) { // It is necessary to maintain order of different event types // for the same target. If the same target has event types A1, B1 // in the event queue and event A2 occurs. A1 has to stay in the // queue. + if (it->isUnique && it->type == rawEvent.type) { + repeatedEvent = it; + } + break; } }