File tree Expand file tree Collapse file tree 6 files changed +14
-10
lines changed
packages/react-native/ReactCommon/react/renderer Expand file tree Collapse file tree 6 files changed +14
-10
lines changed Original file line number Diff line number Diff line change @@ -59,12 +59,13 @@ void EventDispatcher::dispatchUniqueEvent(RawEvent&& rawEvent) const {
59
59
if (eventListeners_.willDispatchEvent (rawEvent)) {
60
60
return ;
61
61
}
62
+
62
63
eventQueue_.enqueueUniqueEvent (std::move (rawEvent));
63
64
}
64
65
65
66
void EventDispatcher::addListener (
66
- const std::shared_ptr<const EventListener>& listener) const {
67
- eventListeners_.addListener (listener);
67
+ std::shared_ptr<const EventListener> listener) const {
68
+ eventListeners_.addListener (std::move ( listener) );
68
69
}
69
70
70
71
/*
Original file line number Diff line number Diff line change @@ -64,7 +64,7 @@ class EventDispatcher {
64
64
/*
65
65
* Adds provided event listener to the event dispatcher.
66
66
*/
67
- void addListener (const std::shared_ptr<const EventListener>& listener) const ;
67
+ void addListener (std::shared_ptr<const EventListener> listener) const ;
68
68
69
69
/*
70
70
* Removes provided event listener to the event dispatcher.
Original file line number Diff line number Diff line change @@ -16,16 +16,19 @@ bool EventListenerContainer::willDispatchEvent(const RawEvent& event) {
16
16
17
17
bool handled = false ;
18
18
for (const auto & listener : eventListeners_) {
19
- handled = handled || listener->operator ()(event);
19
+ handled = (*listener)(event);
20
+ if (handled) {
21
+ break ;
22
+ }
20
23
}
21
24
return handled;
22
25
}
23
26
24
27
void EventListenerContainer::addListener (
25
- const std::shared_ptr<const EventListener>& listener) {
28
+ std::shared_ptr<const EventListener> listener) {
26
29
std::unique_lock lock (mutex_);
27
30
28
- eventListeners_.push_back (listener);
31
+ eventListeners_.push_back (std::move ( listener) );
29
32
}
30
33
31
34
void EventListenerContainer::removeListener (
Original file line number Diff line number Diff line change @@ -30,7 +30,7 @@ class EventListenerContainer {
30
30
*/
31
31
bool willDispatchEvent (const RawEvent& event);
32
32
33
- void addListener (const std::shared_ptr<const EventListener>& listener);
33
+ void addListener (std::shared_ptr<const EventListener> listener);
34
34
void removeListener (const std::shared_ptr<const EventListener>& listener);
35
35
36
36
private:
Original file line number Diff line number Diff line change @@ -364,9 +364,9 @@ std::shared_ptr<UIManager> Scheduler::getUIManager() const {
364
364
}
365
365
366
366
void Scheduler::addEventListener (
367
- const std::shared_ptr<const EventListener>& listener) {
367
+ std::shared_ptr<const EventListener> listener) {
368
368
if (eventDispatcher_->has_value ()) {
369
- eventDispatcher_->value ().addListener (listener);
369
+ eventDispatcher_->value ().addListener (std::move ( listener) );
370
370
}
371
371
}
372
372
Original file line number Diff line number Diff line change @@ -109,7 +109,7 @@ class Scheduler final : public UIManagerDelegate {
109
109
void reportMount (SurfaceId surfaceId) const ;
110
110
111
111
#pragma mark - Event listeners
112
- void addEventListener (const std::shared_ptr<const EventListener>& listener);
112
+ void addEventListener (std::shared_ptr<const EventListener> listener);
113
113
void removeEventListener (
114
114
const std::shared_ptr<const EventListener>& listener);
115
115
You can’t perform that action at this time.
0 commit comments