diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/fabric/StateWrapperImpl.kt b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/fabric/StateWrapperImpl.kt index 06280a06524..f411ecd9cb5 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/fabric/StateWrapperImpl.kt +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/fabric/StateWrapperImpl.kt @@ -28,8 +28,6 @@ import com.facebook.react.uimanager.StateWrapper @OptIn(UnstableReactNativeAPI::class) internal class StateWrapperImpl private constructor() : HybridClassBase(), ReferenceStateWrapper { - private external fun initHybrid() - private external fun getStateDataImpl(): ReadableNativeMap? private external fun getStateMapBufferDataImpl(): ReadableMapBuffer? @@ -65,10 +63,6 @@ internal class StateWrapperImpl private constructor() : HybridClassBase(), Refer return getStateDataReferenceImpl() } - init { - initHybrid() - } - override fun updateState(map: WritableMap) { updateState(map, StateWrapper.UpdateMode.Asynchronous) } diff --git a/packages/react-native/ReactAndroid/src/main/jni/react/fabric/FabricMountingManager.cpp b/packages/react-native/ReactAndroid/src/main/jni/react/fabric/FabricMountingManager.cpp index b5f1eb569b2..3646ea0a62e 100644 --- a/packages/react-native/ReactAndroid/src/main/jni/react/fabric/FabricMountingManager.cpp +++ b/packages/react-native/ReactAndroid/src/main/jni/react/fabric/FabricMountingManager.cpp @@ -439,9 +439,8 @@ inline void writeCreateMountItem( // lifetime of the Java object jni::local_ref javaStateWrapper = nullptr; if (mountItem.newChildShadowView.state != nullptr) { - javaStateWrapper = StateWrapperImpl::newObjectJavaArgs(); - StateWrapperImpl* cStateWrapper = cthis(javaStateWrapper); - cStateWrapper->setState(mountItem.newChildShadowView.state); + javaStateWrapper = + StateWrapperImpl::newObjectCxxArgs(mountItem.newChildShadowView.state); } // Do not hold a reference to javaEventEmitter from the C++ side. @@ -502,9 +501,7 @@ inline void writeUpdateStateMountItem( // lifetime of the Java object jni::local_ref javaStateWrapper = nullptr; if (state != nullptr) { - javaStateWrapper = StateWrapperImpl::newObjectJavaArgs(); - StateWrapperImpl* cStateWrapper = cthis(javaStateWrapper); - cStateWrapper->setState(state); + javaStateWrapper = StateWrapperImpl::newObjectCxxArgs(state); } buffer.writeObject( @@ -1213,9 +1210,7 @@ void FabricMountingManager::preallocateRegisteredView( bool preventPassingStateWrapperForText = strcmp(shadowView.componentName, "Paragraph") == 0; if (shadowView.state != nullptr && !preventPassingStateWrapperForText) { - javaStateWrapper = StateWrapperImpl::newObjectJavaArgs(); - StateWrapperImpl* cStateWrapper = cthis(javaStateWrapper); - cStateWrapper->setState(shadowView.state); + javaStateWrapper = StateWrapperImpl::newObjectCxxArgs(shadowView.state); } jni::local_ref props = getProps({}, shadowView); diff --git a/packages/react-native/ReactAndroid/src/main/jni/react/fabric/StateWrapperImpl.cpp b/packages/react-native/ReactAndroid/src/main/jni/react/fabric/StateWrapperImpl.cpp index 349780a367d..9bf04bd3950 100644 --- a/packages/react-native/ReactAndroid/src/main/jni/react/fabric/StateWrapperImpl.cpp +++ b/packages/react-native/ReactAndroid/src/main/jni/react/fabric/StateWrapperImpl.cpp @@ -17,13 +17,6 @@ using namespace facebook::jni; namespace facebook::react { -/** - * Called from Java constructor through the JNI. - */ -void StateWrapperImpl::initHybrid(jni::alias_ref jobj) { - return setCxxInstance(jobj); -} - jni::local_ref StateWrapperImpl::getStateDataImpl() { if (state_) { @@ -71,7 +64,6 @@ std::shared_ptr StateWrapperImpl::getState() const { void StateWrapperImpl::registerNatives() { registerHybrid({ - makeNativeMethod("initHybrid", StateWrapperImpl::initHybrid), makeNativeMethod("getStateDataImpl", StateWrapperImpl::getStateDataImpl), makeNativeMethod("updateStateImpl", StateWrapperImpl::updateStateImpl), makeNativeMethod( diff --git a/packages/react-native/ReactAndroid/src/main/jni/react/fabric/StateWrapperImpl.h b/packages/react-native/ReactAndroid/src/main/jni/react/fabric/StateWrapperImpl.h index 8c957177a39..4c057897944 100644 --- a/packages/react-native/ReactAndroid/src/main/jni/react/fabric/StateWrapperImpl.h +++ b/packages/react-native/ReactAndroid/src/main/jni/react/fabric/StateWrapperImpl.h @@ -32,9 +32,11 @@ class StateWrapperImpl : public jni::HybridClass std::shared_ptr getState() const; private: - std::shared_ptr state_; + friend HybridBase; + + explicit StateWrapperImpl(std::shared_ptr state) : state_(std::move(state)) {} - static void initHybrid(jni::alias_ref jobj); + std::shared_ptr state_; }; } // namespace facebook::react