From 53b232fd5f4bb6449948408390b8fe79fcea2989 Mon Sep 17 00:00:00 2001 From: Samuel Susla Date: Mon, 26 May 2025 09:29:00 -0700 Subject: [PATCH] remove enable_shared_from_this from AnimatedModule (#51606) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/51606 changelog: [internal] When native module is destroyed, ui queue is also torn down. this helps with C++ binary size a little bit Reviewed By: rshest Differential Revision: D75149437 fbshipit-source-id: 1df061db26b4fb5026114e00bbc6846bf38d83a9 --- .../renderer/animated/AnimatedModule.cpp | 23 ++++++++----------- .../react/renderer/animated/AnimatedModule.h | 1 - 2 files changed, 10 insertions(+), 14 deletions(-) diff --git a/packages/react-native/ReactCxxPlatform/react/renderer/animated/AnimatedModule.cpp b/packages/react-native/ReactCxxPlatform/react/renderer/animated/AnimatedModule.cpp index 580acfe1a1d..f3f394239b9 100644 --- a/packages/react-native/ReactCxxPlatform/react/renderer/animated/AnimatedModule.cpp +++ b/packages/react-native/ReactCxxPlatform/react/renderer/animated/AnimatedModule.cpp @@ -79,20 +79,17 @@ void AnimatedModule::getValue( void AnimatedModule::startListeningToAnimatedNodeValue( jsi::Runtime& /*rt*/, Tag tag) { - addOperation([tag, weakThis = weak_from_this()]( - NativeAnimatedNodesManager& nodesManager) { + addOperation([tag, this](NativeAnimatedNodesManager& nodesManager) { nodesManager.startListeningToAnimatedNodeValue( - tag, [weakThis, tag](double value) { - if (auto strongThis = weakThis.lock()) { - strongThis->emitDeviceEvent( - "onAnimatedValueUpdate", - [tag, value](jsi::Runtime& rt, std::vector& args) { - auto arg = jsi::Object(rt); - arg.setProperty(rt, "tag", jsi::Value(tag)); - arg.setProperty(rt, "value", jsi::Value(value)); - args.emplace_back(rt, arg); - }); - } + tag, [this, tag](double value) { + emitDeviceEvent( + "onAnimatedValueUpdate", + [tag, value](jsi::Runtime& rt, std::vector& args) { + auto arg = jsi::Object(rt); + arg.setProperty(rt, "tag", jsi::Value(tag)); + arg.setProperty(rt, "value", jsi::Value(value)); + args.emplace_back(rt, arg); + }); }); }); } diff --git a/packages/react-native/ReactCxxPlatform/react/renderer/animated/AnimatedModule.h b/packages/react-native/ReactCxxPlatform/react/renderer/animated/AnimatedModule.h index 906c1e04145..ea179146297 100644 --- a/packages/react-native/ReactCxxPlatform/react/renderer/animated/AnimatedModule.h +++ b/packages/react-native/ReactCxxPlatform/react/renderer/animated/AnimatedModule.h @@ -18,7 +18,6 @@ namespace facebook::react { class AnimatedModule : public NativeAnimatedModuleCxxSpec, - public std::enable_shared_from_this, public TurboModuleWithJSIBindings { using Operation = std::function;