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
This commit is contained in:
Joshua Gross 2019-09-09 19:52:27 -07:00 коммит произвёл Facebook Github Bot
Родитель 09aefa191b
Коммит d7d848e824
2 изменённых файлов: 16 добавлений и 10 удалений

Просмотреть файл

@ -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<ReadableMap::javaobject> castReadableMap(

Просмотреть файл

@ -26,16 +26,6 @@ class Binding : public jni::HybridClass<Binding>, public SchedulerDelegate {
static void registerNatives();
jni::global_ref<jobject> javaUIManager_;
std::mutex javaUIManagerMutex_;
std::shared_ptr<Scheduler> scheduler_;
std::mutex schedulerMutex_;
std::recursive_mutex commitMutex_;
float pointScaleFactor_ = 1;
private:
jni::global_ref<jobject> getJavaUIManager();
std::shared_ptr<Scheduler> getScheduler();
@ -98,6 +88,19 @@ class Binding : public jni::HybridClass<Binding>, public SchedulerDelegate {
void schedulerDidClearJSResponder();
void uninstallFabricUIManager();
// Private member variables
jni::global_ref<jobject> javaUIManager_;
std::mutex javaUIManagerMutex_;
std::shared_ptr<Scheduler> scheduler_;
std::mutex schedulerMutex_;
std::recursive_mutex commitMutex_;
float pointScaleFactor_ = 1;
std::shared_ptr<const ReactNativeConfig> reactNativeConfig_;
};
} // namespace react