mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
Refactor access of ReactFeatureFlags from C++
Summary: This diff is a follow up of D28360679 (https://github.com/facebook/react-native/commit/e3367354cc93f17b830ed8dc601dff5e87748dd1), here we refactor the access of ReactFeatureFlags from C++ to use methods instead of fields changelog: [internal] internal Reviewed By: JoshuaGross Differential Revision: D28362066 fbshipit-source-id: caed5e7fddeb6c0d9846fb037152befa8f1ed5c2
This commit is contained in:
committed by
Facebook GitHub Bot
parent
22ddab2025
commit
aafdf9fee1
@@ -60,9 +60,6 @@ public class ReactFeatureFlags {
|
||||
/** Enables JS Responder in Fabric */
|
||||
public static boolean enableJSResponder = false;
|
||||
|
||||
/** Enables MapBuffer Serialization */
|
||||
public static boolean mapBufferSerializationEnabled = false;
|
||||
|
||||
/** An interface used to compute flags on demand. */
|
||||
public interface FlagProvider {
|
||||
boolean get();
|
||||
@@ -75,6 +72,17 @@ public class ReactFeatureFlags {
|
||||
enableRuntimeExecutorFlushingProvider = provider;
|
||||
}
|
||||
|
||||
private static boolean mapBufferSerializationEnabled = false;
|
||||
|
||||
/** Enables or disables MapBuffer Serialization */
|
||||
public static void setMapBufferSerializationEnabled(boolean enabled) {
|
||||
mapBufferSerializationEnabled = enabled;
|
||||
}
|
||||
|
||||
public static boolean isMapBufferSerializationEnabled() {
|
||||
return mapBufferSerializationEnabled;
|
||||
}
|
||||
|
||||
public static boolean enableRuntimeExecutorFlushing() {
|
||||
if (enableRuntimeExecutorFlushingProvider != null) {
|
||||
return enableRuntimeExecutorFlushingProvider.get();
|
||||
|
||||
@@ -453,6 +453,17 @@ void Binding::setConstraints(
|
||||
}
|
||||
}
|
||||
|
||||
bool isMapBufferSerializationEnabled() {
|
||||
static const auto reactFeatureFlagsJavaDescriptor =
|
||||
jni::findClassStatic(Binding::ReactFeatureFlagsJavaDescriptor);
|
||||
static const auto isMapBufferSerializationEnabledMethod =
|
||||
reactFeatureFlagsJavaDescriptor->getStaticMethod<jboolean()>(
|
||||
"isMapBufferSerializationEnabled");
|
||||
bool value =
|
||||
isMapBufferSerializationEnabledMethod(reactFeatureFlagsJavaDescriptor);
|
||||
return value;
|
||||
}
|
||||
|
||||
void Binding::installFabricUIManager(
|
||||
jni::alias_ref<JRuntimeExecutor::javaobject> runtimeExecutorHolder,
|
||||
jni::alias_ref<jobject> javaUIManager,
|
||||
@@ -462,9 +473,6 @@ void Binding::installFabricUIManager(
|
||||
jni::alias_ref<jobject> reactNativeConfig) {
|
||||
SystraceSection s("FabricUIManagerBinding::installFabricUIManager");
|
||||
|
||||
static const auto reactFeatureFlagsJavaDescriptor =
|
||||
jni::findClassStatic(Binding::ReactFeatureFlagsJavaDescriptor);
|
||||
|
||||
std::shared_ptr<const ReactNativeConfig> config =
|
||||
std::make_shared<const ReactNativeConfigHolder>(reactNativeConfig);
|
||||
|
||||
@@ -533,14 +541,8 @@ void Binding::installFabricUIManager(
|
||||
// Keep reference to config object and cache some feature flags here
|
||||
reactNativeConfig_ = config;
|
||||
|
||||
static const auto mapBufferSerializationEnabledField =
|
||||
reactFeatureFlagsJavaDescriptor->getStaticField<jboolean>(
|
||||
"mapBufferSerializationEnabled");
|
||||
bool mapBufferSerializationEnabled =
|
||||
reactFeatureFlagsJavaDescriptor->getStaticFieldValue(
|
||||
mapBufferSerializationEnabledField);
|
||||
contextContainer->insert(
|
||||
"MapBufferSerializationEnabled", mapBufferSerializationEnabled);
|
||||
"MapBufferSerializationEnabled", isMapBufferSerializationEnabled());
|
||||
|
||||
disablePreallocateViews_ = reactNativeConfig_->getBool(
|
||||
"react_fabric:disabled_view_preallocation_android");
|
||||
|
||||
@@ -95,7 +95,7 @@ public class ReactTextViewManager
|
||||
return null;
|
||||
}
|
||||
|
||||
if (ReactFeatureFlags.mapBufferSerializationEnabled) {
|
||||
if (ReactFeatureFlags.isMapBufferSerializationEnabled()) {
|
||||
ReadableMapBuffer stateMapBuffer = stateWrapper.getStatDataMapBuffer();
|
||||
if (stateMapBuffer != null) {
|
||||
return getReactTextUpdate(view, props, stateMapBuffer);
|
||||
|
||||
Reference in New Issue
Block a user