From a206f4fc2eafa8ed17e69c08fe050bb89b3b6c6a Mon Sep 17 00:00:00 2001 From: Samuel Susla Date: Fri, 5 Mar 2021 10:42:37 -0800 Subject: [PATCH] Back out "Don't retain State in StateWrapperImpl" Summary: Changelog: [internal] Original commit changeset: 0703c6dccc62 Reviewed By: yungsters Differential Revision: D26849056 fbshipit-source-id: 2c6fca3ef06ac4868979d0a93c04c0eabdd56eb0 --- .../react/fabric/jni/StateWrapperImpl.cpp | 17 +++++------------ .../react/fabric/jni/StateWrapperImpl.h | 2 +- ReactCommon/react/renderer/core/State.h | 1 - 3 files changed, 6 insertions(+), 14 deletions(-) diff --git a/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/StateWrapperImpl.cpp b/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/StateWrapperImpl.cpp index c95ac15bc2e..9a5b929e9af 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/StateWrapperImpl.cpp +++ b/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/StateWrapperImpl.cpp @@ -23,24 +23,17 @@ jni::local_ref StateWrapperImpl::initHybrid( } jni::local_ref StateWrapperImpl::getState() { - auto state = state_.lock(); - if (!state) { - return nullptr; - } - folly::dynamic map = state->getDynamic(); + folly::dynamic map = state_->getDynamic(); local_ref readableNativeMap = ReadableNativeMap::newObjectCxxArgs(map); return readableNativeMap; } void StateWrapperImpl::updateStateImpl(NativeMap *map) { - auto state = state_.lock(); - if (state) { - // Get folly::dynamic from map - auto dynamicMap = map->consume(); - // Set state - state->updateState(dynamicMap); - } + // Get folly::dynamic from map + auto dynamicMap = map->consume(); + // Set state + state_->updateState(dynamicMap); } void StateWrapperImpl::registerNatives() { diff --git a/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/StateWrapperImpl.h b/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/StateWrapperImpl.h index dccd52155b3..9a88eb0271b 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/StateWrapperImpl.h +++ b/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/StateWrapperImpl.h @@ -32,7 +32,7 @@ class StateWrapperImpl : public jni::HybridClass { jni::alias_ref self, int callbackRefId); - State::Weak state_; + State::Shared state_; private: jni::alias_ref jhybridobject_; diff --git a/ReactCommon/react/renderer/core/State.h b/ReactCommon/react/renderer/core/State.h index 285691fe94a..c0472fec057 100644 --- a/ReactCommon/react/renderer/core/State.h +++ b/ReactCommon/react/renderer/core/State.h @@ -24,7 +24,6 @@ namespace react { class State { public: using Shared = std::shared_ptr; - using Weak = std::weak_ptr; static size_t constexpr initialRevisionValue = 1;