From f9836221669e750ffbe61bd9594ddbd85d5c371d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hanno=20J=2E=20G=C3=B6decke?= Date: Fri, 13 Dec 2024 11:54:52 +0100 Subject: [PATCH 1/4] feat: add `getState` for StateWrapperImpl --- .../src/main/jni/react/fabric/StateWrapperImpl.cpp | 4 ++++ .../ReactAndroid/src/main/jni/react/fabric/StateWrapperImpl.h | 1 + 2 files changed, 5 insertions(+) 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 d1af22e3642441..422d7c9e2de228 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 @@ -56,6 +56,10 @@ void StateWrapperImpl::setState(std::shared_ptr state) { state_ = state; } +const std::shared_ptr StateWrapperImpl::getState() const { + return state_; +} + void StateWrapperImpl::registerNatives() { registerHybrid({ makeNativeMethod("initHybrid", StateWrapperImpl::initHybrid), 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 e033bb1ec6b825..c290b59dc91fc4 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 @@ -29,6 +29,7 @@ class StateWrapperImpl : public jni::HybridClass { jni::local_ref getStateDataImpl(); void updateStateImpl(NativeMap* map); void setState(std::shared_ptr state); + const std::shared_ptr getState() const; private: std::shared_ptr state_; From e7d35c2de5fd185a557504adb8564c7191b4174f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hanno=20J=2E=20G=C3=B6decke?= Date: Fri, 13 Dec 2024 12:44:33 +0100 Subject: [PATCH 2/4] Update packages/react-native/ReactAndroid/src/main/jni/react/fabric/StateWrapperImpl.h Co-authored-by: Pieter De Baets --- .../ReactAndroid/src/main/jni/react/fabric/StateWrapperImpl.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 c290b59dc91fc4..3069bd92af5c35 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 @@ -29,7 +29,7 @@ class StateWrapperImpl : public jni::HybridClass { jni::local_ref getStateDataImpl(); void updateStateImpl(NativeMap* map); void setState(std::shared_ptr state); - const std::shared_ptr getState() const; + std::shared_ptr getState() const; private: std::shared_ptr state_; From 58ecef346b721db686b544a3d5af1d8ddece94ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hanno=20J=2E=20G=C3=B6decke?= Date: Fri, 13 Dec 2024 12:46:04 +0100 Subject: [PATCH 3/4] get by const ref --- .../ReactAndroid/src/main/jni/react/fabric/StateWrapperImpl.cpp | 2 +- .../ReactAndroid/src/main/jni/react/fabric/StateWrapperImpl.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) 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 422d7c9e2de228..2db317215d8f50 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 @@ -56,7 +56,7 @@ void StateWrapperImpl::setState(std::shared_ptr state) { state_ = state; } -const std::shared_ptr StateWrapperImpl::getState() const { +const std::shared_ptr& StateWrapperImpl::getState() const { return state_; } 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 3069bd92af5c35..f1f5acc5df92fb 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 @@ -29,7 +29,7 @@ class StateWrapperImpl : public jni::HybridClass { jni::local_ref getStateDataImpl(); void updateStateImpl(NativeMap* map); void setState(std::shared_ptr state); - std::shared_ptr getState() const; + const std::shared_ptr& getState() const; private: std::shared_ptr state_; From 224df19968760e640d503022ed215f90978c9874 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hanno=20J=2E=20G=C3=B6decke?= Date: Fri, 13 Dec 2024 16:41:50 +0100 Subject: [PATCH 4/4] return copy shared ptr --- .../ReactAndroid/src/main/jni/react/fabric/StateWrapperImpl.cpp | 2 +- .../ReactAndroid/src/main/jni/react/fabric/StateWrapperImpl.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) 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 2db317215d8f50..01db7fb563d686 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 @@ -56,7 +56,7 @@ void StateWrapperImpl::setState(std::shared_ptr state) { state_ = state; } -const std::shared_ptr& StateWrapperImpl::getState() const { +std::shared_ptr StateWrapperImpl::getState() const { return state_; } 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 f1f5acc5df92fb..340b7761458a10 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 @@ -29,7 +29,7 @@ class StateWrapperImpl : public jni::HybridClass { jni::local_ref getStateDataImpl(); void updateStateImpl(NativeMap* map); void setState(std::shared_ptr state); - const std::shared_ptr& getState() const; + std::shared_ptr getState() const; private: std::shared_ptr state_;