Ship and delete mapBufferSerialization for Text measurement
Summary: In this diff I'm shipping and deleting mapBufferSerialization for Text measurement changelog: [internal] internal Reviewed By: NickGerleman Differential Revision: D40348982 fbshipit-source-id: 7336cbe055a55d7d8d4f0a723049842bae1defb5
This commit is contained in:
Родитель
e87cdc7fd4
Коммит
22b6e1c8ec
|
@ -17,7 +17,6 @@ import com.facebook.react.bridge.ReadableNativeMap;
|
|||
import com.facebook.react.common.MapBuilder;
|
||||
import com.facebook.react.common.annotations.VisibleForTesting;
|
||||
import com.facebook.react.common.mapbuffer.MapBuffer;
|
||||
import com.facebook.react.config.ReactFeatureFlags;
|
||||
import com.facebook.react.module.annotations.ReactModule;
|
||||
import com.facebook.react.uimanager.IViewManagerWithChildren;
|
||||
import com.facebook.react.uimanager.ReactAccessibilityDelegate;
|
||||
|
@ -132,13 +131,10 @@ public class ReactTextViewManager
|
|||
@Override
|
||||
public Object updateState(
|
||||
ReactTextView view, ReactStylesDiffMap props, StateWrapper stateWrapper) {
|
||||
if (ReactFeatureFlags.mapBufferSerializationEnabled) {
|
||||
MapBuffer stateMapBuffer = stateWrapper.getStateDataMapBuffer();
|
||||
if (stateMapBuffer != null) {
|
||||
return getReactTextUpdate(view, props, stateMapBuffer);
|
||||
}
|
||||
MapBuffer stateMapBuffer = stateWrapper.getStateDataMapBuffer();
|
||||
if (stateMapBuffer != null) {
|
||||
return getReactTextUpdate(view, props, stateMapBuffer);
|
||||
}
|
||||
|
||||
ReadableNativeMap state = stateWrapper.getStateData();
|
||||
if (state == null) {
|
||||
return null;
|
||||
|
|
|
@ -45,7 +45,6 @@ import com.facebook.react.bridge.WritableMap;
|
|||
import com.facebook.react.bridge.WritableNativeMap;
|
||||
import com.facebook.react.common.MapBuilder;
|
||||
import com.facebook.react.common.mapbuffer.MapBuffer;
|
||||
import com.facebook.react.config.ReactFeatureFlags;
|
||||
import com.facebook.react.module.annotations.ReactModule;
|
||||
import com.facebook.react.uimanager.BaseViewManager;
|
||||
import com.facebook.react.uimanager.FabricViewStateManager;
|
||||
|
@ -1295,11 +1294,9 @@ public class ReactTextInputManager extends BaseViewManager<ReactEditText, Layout
|
|||
|
||||
stateManager.setStateWrapper(stateWrapper);
|
||||
|
||||
if (ReactFeatureFlags.mapBufferSerializationEnabled) {
|
||||
MapBuffer stateMapBuffer = stateWrapper.getStateDataMapBuffer();
|
||||
if (stateMapBuffer != null) {
|
||||
return getReactTextUpdate(view, props, stateMapBuffer);
|
||||
}
|
||||
MapBuffer stateMapBuffer = stateWrapper.getStateDataMapBuffer();
|
||||
if (stateMapBuffer != null) {
|
||||
return getReactTextUpdate(view, props, stateMapBuffer);
|
||||
}
|
||||
|
||||
ReadableNativeMap state = stateWrapper.getStateData();
|
||||
|
|
|
@ -433,10 +433,6 @@ void Binding::installFabricUIManager(
|
|||
// Keep reference to config object and cache some feature flags here
|
||||
reactNativeConfig_ = config;
|
||||
|
||||
contextContainer->insert(
|
||||
"MapBufferSerializationEnabled",
|
||||
getFeatureFlagValue("mapBufferSerializationEnabled"));
|
||||
|
||||
contextContainer->insert(
|
||||
"CalculateTransformedFramesEnabled",
|
||||
getFeatureFlagValue("calculateTransformedFramesEnabled"));
|
||||
|
|
|
@ -146,8 +146,6 @@ Size measureAndroidComponentMapBuffer(
|
|||
TextLayoutManager::TextLayoutManager(
|
||||
const ContextContainer::Shared &contextContainer)
|
||||
: contextContainer_(contextContainer),
|
||||
mapBufferSerializationEnabled_(
|
||||
contextContainer->at<bool>("MapBufferSerializationEnabled")),
|
||||
measureCache_(
|
||||
contextContainer->at<bool>("EnableLargeTextMeasureCache")
|
||||
? 1024
|
||||
|
@ -171,11 +169,8 @@ TextMeasurement TextLayoutManager::measure(
|
|||
telemetry->willMeasureText();
|
||||
}
|
||||
|
||||
auto measurement = mapBufferSerializationEnabled_
|
||||
? doMeasureMapBuffer(
|
||||
attributedString, paragraphAttributes, layoutConstraints)
|
||||
: doMeasure(
|
||||
attributedString, paragraphAttributes, layoutConstraints);
|
||||
auto measurement = doMeasureMapBuffer(
|
||||
attributedString, paragraphAttributes, layoutConstraints);
|
||||
|
||||
if (telemetry != nullptr) {
|
||||
telemetry->didMeasureText();
|
||||
|
@ -227,60 +222,6 @@ LinesMeasurements TextLayoutManager::measureLines(
|
|||
AttributedString const &attributedString,
|
||||
ParagraphAttributes const ¶graphAttributes,
|
||||
Size size) const {
|
||||
if (mapBufferSerializationEnabled_) {
|
||||
return measureLinesMapBuffer(attributedString, paragraphAttributes, size);
|
||||
}
|
||||
|
||||
const jni::global_ref<jobject> &fabricUIManager =
|
||||
contextContainer_->at<jni::global_ref<jobject>>("FabricUIManager");
|
||||
static auto measureLines =
|
||||
jni::findClassStatic("com/facebook/react/fabric/FabricUIManager")
|
||||
->getMethod<NativeArray::javaobject(
|
||||
ReadableMap::javaobject,
|
||||
ReadableMap::javaobject,
|
||||
jfloat,
|
||||
jfloat)>("measureLines");
|
||||
|
||||
auto serializedAttributedString = toDynamic(attributedString);
|
||||
|
||||
local_ref<ReadableNativeMap::javaobject> attributedStringRNM =
|
||||
ReadableNativeMap::newObjectCxxArgs(serializedAttributedString);
|
||||
local_ref<ReadableNativeMap::javaobject> paragraphAttributesRNM =
|
||||
ReadableNativeMap::newObjectCxxArgs(toDynamic(paragraphAttributes));
|
||||
|
||||
local_ref<ReadableMap::javaobject> attributedStringRM = make_local(
|
||||
reinterpret_cast<ReadableMap::javaobject>(attributedStringRNM.get()));
|
||||
local_ref<ReadableMap::javaobject> paragraphAttributesRM = make_local(
|
||||
reinterpret_cast<ReadableMap::javaobject>(paragraphAttributesRNM.get()));
|
||||
|
||||
auto array = measureLines(
|
||||
fabricUIManager,
|
||||
attributedStringRM.get(),
|
||||
paragraphAttributesRM.get(),
|
||||
size.width,
|
||||
size.height);
|
||||
|
||||
auto dynamicArray = cthis(array)->consume();
|
||||
LinesMeasurements lineMeasurements;
|
||||
lineMeasurements.reserve(dynamicArray.size());
|
||||
|
||||
for (auto const &data : dynamicArray) {
|
||||
lineMeasurements.push_back(LineMeasurement(data));
|
||||
}
|
||||
|
||||
// Explicitly release smart pointers to free up space faster in JNI tables
|
||||
attributedStringRM.reset();
|
||||
attributedStringRNM.reset();
|
||||
paragraphAttributesRM.reset();
|
||||
paragraphAttributesRNM.reset();
|
||||
|
||||
return lineMeasurements;
|
||||
}
|
||||
|
||||
LinesMeasurements TextLayoutManager::measureLinesMapBuffer(
|
||||
AttributedString const &attributedString,
|
||||
ParagraphAttributes const ¶graphAttributes,
|
||||
Size size) const {
|
||||
const jni::global_ref<jobject> &fabricUIManager =
|
||||
contextContainer_->at<jni::global_ref<jobject>>("FabricUIManager");
|
||||
static auto measureLines =
|
||||
|
|
|
@ -90,7 +90,6 @@ class TextLayoutManager {
|
|||
|
||||
void *self_{};
|
||||
ContextContainer::Shared contextContainer_;
|
||||
bool mapBufferSerializationEnabled_;
|
||||
TextMeasureCache measureCache_;
|
||||
};
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче