From d7d848e8241ae430472ded5d428cacffe1e8bec7 Mon Sep 17 00:00:00 2001 From: Joshua Gross Date: Mon, 9 Sep 2019 19:52:27 -0700 Subject: [PATCH] In Binding.cpp, retain reference to reactNativeConfig Summary: Retain reference to reactNativeConfig to allow feature checks within core. This also rearranges the members of Binding to make them private instead of public. Reviewed By: mdvacca Differential Revision: D17275344 fbshipit-source-id: 67ad00aeebd3534a45a6ea8a28e14b7fcd9eb2e5 --- .../com/facebook/react/fabric/jni/Binding.cpp | 3 +++ .../com/facebook/react/fabric/jni/Binding.h | 23 +++++++++++-------- 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/Binding.cpp b/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/Binding.cpp index a3ca8d369b3..6d693d76185 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/Binding.cpp +++ b/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/Binding.cpp @@ -223,6 +223,8 @@ void Binding::installFabricUIManager( contextContainer->insert("ReactNativeConfig", config); contextContainer->insert("FabricUIManager", javaUIManager_); + reactNativeConfig_ = config; + auto toolbox = SchedulerToolbox{}; toolbox.contextContainer = contextContainer; toolbox.componentRegistryFactory = componentsRegistry->buildRegistryFunction; @@ -240,6 +242,7 @@ void Binding::uninstallFabricUIManager() { scheduler_ = nullptr; javaUIManager_ = nullptr; + reactNativeConfig_ = nullptr; } inline local_ref castReadableMap( diff --git a/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/Binding.h b/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/Binding.h index c4c65e5f602..1f9f448fa47 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/Binding.h +++ b/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/Binding.h @@ -26,16 +26,6 @@ class Binding : public jni::HybridClass, public SchedulerDelegate { static void registerNatives(); - jni::global_ref javaUIManager_; - std::mutex javaUIManagerMutex_; - - std::shared_ptr scheduler_; - std::mutex schedulerMutex_; - - std::recursive_mutex commitMutex_; - - float pointScaleFactor_ = 1; - private: jni::global_ref getJavaUIManager(); std::shared_ptr getScheduler(); @@ -98,6 +88,19 @@ class Binding : public jni::HybridClass, public SchedulerDelegate { void schedulerDidClearJSResponder(); void uninstallFabricUIManager(); + + // Private member variables + jni::global_ref javaUIManager_; + std::mutex javaUIManagerMutex_; + + std::shared_ptr scheduler_; + std::mutex schedulerMutex_; + + std::recursive_mutex commitMutex_; + + float pointScaleFactor_ = 1; + + std::shared_ptr reactNativeConfig_; }; } // namespace react