From e51a05821239d522e64df74adc2ddee09839f485 Mon Sep 17 00:00:00 2001 From: Samuel Susla Date: Tue, 14 Nov 2023 07:51:57 -0800 Subject: [PATCH] copy instanceHandle into UIManager::createNode (#41443) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/41443 changelog: [internal] instanceHandle is retained by UIManager::createNode. Let's make that obvious in the API. Reviewed By: NickGerleman Differential Revision: D51233821 fbshipit-source-id: b97ad80d3ac31a7830c24c8900caa723ca0e9c20 --- .../ReactCommon/react/renderer/uimanager/UIManager.cpp | 6 +++--- .../ReactCommon/react/renderer/uimanager/UIManager.h | 2 +- .../react/renderer/uimanager/UIManagerBinding.cpp | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/react-native/ReactCommon/react/renderer/uimanager/UIManager.cpp b/packages/react-native/ReactCommon/react/renderer/uimanager/UIManager.cpp index d9b53b655a9..0dd12526bc7 100644 --- a/packages/react-native/ReactCommon/react/renderer/uimanager/UIManager.cpp +++ b/packages/react-native/ReactCommon/react/renderer/uimanager/UIManager.cpp @@ -67,7 +67,7 @@ std::shared_ptr UIManager::createNode( const std::string& name, SurfaceId surfaceId, const RawProps& rawProps, - const InstanceHandle::Shared& instanceHandle) const { + InstanceHandle::Shared instanceHandle) const { SystraceSection s("UIManager::createNode", "componentName", name); auto& componentDescriptor = componentDescriptorRegistry_->at(name); @@ -76,8 +76,8 @@ std::shared_ptr UIManager::createNode( PropsParserContext propsParserContext{surfaceId, *contextContainer_.get()}; - auto family = - componentDescriptor.createFamily({tag, surfaceId, instanceHandle}); + auto family = componentDescriptor.createFamily( + {tag, surfaceId, std::move(instanceHandle)}); const auto props = componentDescriptor.cloneProps(propsParserContext, nullptr, rawProps); const auto state = componentDescriptor.createInitialState(props, family); diff --git a/packages/react-native/ReactCommon/react/renderer/uimanager/UIManager.h b/packages/react-native/ReactCommon/react/renderer/uimanager/UIManager.h index 3f2abc2bb82..7ea9b28dcdf 100644 --- a/packages/react-native/ReactCommon/react/renderer/uimanager/UIManager.h +++ b/packages/react-native/ReactCommon/react/renderer/uimanager/UIManager.h @@ -135,7 +135,7 @@ class UIManager final : public ShadowTreeDelegate { const std::string& componentName, SurfaceId surfaceId, const RawProps& props, - const InstanceHandle::Shared& instanceHandle) const; + InstanceHandle::Shared instanceHandle) const; std::shared_ptr cloneNode( const ShadowNode& shadowNode, diff --git a/packages/react-native/ReactCommon/react/renderer/uimanager/UIManagerBinding.cpp b/packages/react-native/ReactCommon/react/renderer/uimanager/UIManagerBinding.cpp index 0baf44b8e3e..9813ea84ccc 100644 --- a/packages/react-native/ReactCommon/react/renderer/uimanager/UIManagerBinding.cpp +++ b/packages/react-native/ReactCommon/react/renderer/uimanager/UIManagerBinding.cpp @@ -246,7 +246,7 @@ jsi::Value UIManagerBinding::get( stringFromValue(runtime, arguments[1]), surfaceIdFromValue(runtime, arguments[2]), RawProps(runtime, arguments[3]), - instanceHandle)); + std::move(instanceHandle))); }); }