diff --git a/packages/react-native/ReactCommon/react/renderer/core/EventHandler.h b/packages/react-native/ReactCommon/react/renderer/core/EventHandler.h deleted file mode 100644 index b650d8f161c..00000000000 --- a/packages/react-native/ReactCommon/react/renderer/core/EventHandler.h +++ /dev/null @@ -1,28 +0,0 @@ -/* - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -#pragma once - -#include - -namespace facebook::react { - -/* - * We need this types only to ensure type-safety when we deal with them. - * Conceptually, they are opaque pointers to some types that derived from those - * classes. - * - * `EventHandler` is managed as a `unique_ptr`, so it must have a *virtual* - * destructor to allow proper deallocation having only a pointer - * to the base (`EventHandler`) class. - */ -struct EventHandler { - virtual ~EventHandler() = default; -}; -using UniqueEventHandler = std::unique_ptr; - -} // namespace facebook::react diff --git a/packages/react-native/ReactCommon/react/renderer/uimanager/UIManagerBinding.cpp b/packages/react-native/ReactCommon/react/renderer/uimanager/UIManagerBinding.cpp index db79e7f47ff..0baf44b8e3e 100644 --- a/packages/react-native/ReactCommon/react/renderer/uimanager/UIManagerBinding.cpp +++ b/packages/react-native/ReactCommon/react/renderer/uimanager/UIManagerBinding.cpp @@ -155,15 +155,14 @@ void UIManagerBinding::dispatchEventToJS( LOG(WARNING) << "instanceHandle is null, event will be dropped"; } - auto& eventHandlerWrapper = - static_cast(*eventHandler_); - currentEventPriority_ = priority; - eventHandlerWrapper.callback.call( - runtime, - {std::move(instanceHandle), - jsi::String::createFromUtf8(runtime, type), - std::move(payload)}); + if (eventHandler_) { + eventHandler_->call( + runtime, + std::move(instanceHandle), + jsi::String::createFromUtf8(runtime, type), + std::move(payload)); + } currentEventPriority_ = ReactEventPriority::Default; } @@ -545,7 +544,7 @@ jsi::Value UIManagerBinding::get( auto eventHandler = arguments[0].getObject(runtime).getFunction(runtime); eventHandler_ = - std::make_unique(std::move(eventHandler)); + std::make_unique(std::move(eventHandler)); return jsi::Value::undefined(); }); } diff --git a/packages/react-native/ReactCommon/react/renderer/uimanager/UIManagerBinding.h b/packages/react-native/ReactCommon/react/renderer/uimanager/UIManagerBinding.h index b5c98b3a0f1..3ade1a02e4a 100644 --- a/packages/react-native/ReactCommon/react/renderer/uimanager/UIManagerBinding.h +++ b/packages/react-native/ReactCommon/react/renderer/uimanager/UIManagerBinding.h @@ -84,7 +84,7 @@ class UIManagerBinding : public jsi::HostObject { const EventPayload& payload) const; std::shared_ptr uiManager_; - std::unique_ptr eventHandler_; + std::unique_ptr eventHandler_; mutable PointerEventsProcessor pointerEventsProcessor_; mutable ReactEventPriority currentEventPriority_; }; diff --git a/packages/react-native/ReactCommon/react/renderer/uimanager/primitives.h b/packages/react-native/ReactCommon/react/renderer/uimanager/primitives.h index b8e0f9fc2f1..62f0858028c 100644 --- a/packages/react-native/ReactCommon/react/renderer/uimanager/primitives.h +++ b/packages/react-native/ReactCommon/react/renderer/uimanager/primitives.h @@ -12,7 +12,6 @@ #include #include #include -#include #include #include #include @@ -23,13 +22,6 @@ namespace facebook::react { using BackgroundExecutor = std::function&& callback)>; -struct EventHandlerWrapper : public EventHandler { - EventHandlerWrapper(jsi::Function eventHandler) - : callback(std::move(eventHandler)) {} - - jsi::Function callback; -}; - struct ShadowNodeListWrapper : public jsi::NativeState { ShadowNodeListWrapper(ShadowNode::UnsharedListOfShared shadowNodeList) : shadowNodeList(std::move(shadowNodeList)) {}