diff --git a/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManager.java b/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManager.java index a3b69c3584c..5ea7fa5b7fa 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManager.java +++ b/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManager.java @@ -333,6 +333,7 @@ public class FabricUIManager implements UIManager, LifecycleEventListener { @DoNotStrip @SuppressWarnings("unused") private long measure( + int rootTag, String componentName, ReadableMap localData, ReadableMap props, @@ -341,7 +342,29 @@ public class FabricUIManager implements UIManager, LifecycleEventListener { float maxWidth, float minHeight, float maxHeight) { + return mMountingManager.measure( + mReactContextForRootTag.get(rootTag), + componentName, + localData, + props, + state, + getYogaSize(minWidth, maxWidth), + getYogaMeasureMode(minWidth, maxWidth), + getYogaSize(minHeight, maxHeight), + getYogaMeasureMode(minHeight, maxHeight)); + } + @DoNotStrip + @SuppressWarnings("unused") + private long measure( + String componentName, + ReadableMap localData, + ReadableMap props, + ReadableMap state, + float minWidth, + float maxWidth, + float minHeight, + float maxHeight) { return mMountingManager.measure( mReactApplicationContext, componentName, diff --git a/ReactCommon/fabric/components/slider/SliderShadowNode.cpp b/ReactCommon/fabric/components/slider/SliderShadowNode.cpp index 6557295c2dc..39dd570865c 100644 --- a/ReactCommon/fabric/components/slider/SliderShadowNode.cpp +++ b/ReactCommon/fabric/components/slider/SliderShadowNode.cpp @@ -93,7 +93,7 @@ ImageSource SliderShadowNode::getThumbImageSource() const { Size SliderShadowNode::measure(LayoutConstraints layoutConstraints) const { if (SliderMeasurementsManager::shouldMeasureSlider()) { - return measurementsManager_->measure(layoutConstraints); + return measurementsManager_->measure(getSurfaceId(), layoutConstraints); } return {}; diff --git a/ReactCommon/fabric/components/slider/platform/android/SliderMeasurementsManager.cpp b/ReactCommon/fabric/components/slider/platform/android/SliderMeasurementsManager.cpp index c44288caefc..da8a5280219 100644 --- a/ReactCommon/fabric/components/slider/platform/android/SliderMeasurementsManager.cpp +++ b/ReactCommon/fabric/components/slider/platform/android/SliderMeasurementsManager.cpp @@ -17,6 +17,7 @@ namespace facebook { namespace react { Size SliderMeasurementsManager::measure( + SurfaceId surfaceId, LayoutConstraints layoutConstraints) const { { std::lock_guard lock(mutex_); @@ -31,6 +32,7 @@ Size SliderMeasurementsManager::measure( static auto measure = jni::findClassStatic("com/facebook/react/fabric/FabricUIManager") ->getMethod lock(mutex_); @@ -31,6 +32,7 @@ Size AndroidSwitchMeasurementsManager::measure( static auto measure = jni::findClassStatic("com/facebook/react/fabric/FabricUIManager") ->getMethodmeasure(layoutConstraints); + return measurementsManager_->measure(getSurfaceId(), layoutConstraints); } } // namespace react diff --git a/ReactCommon/fabric/textlayoutmanager/platform/ios/TextLayoutManager.mm b/ReactCommon/fabric/textlayoutmanager/platform/ios/TextLayoutManager.mm index 55be64985f0..e5f36454a1f 100644 --- a/ReactCommon/fabric/textlayoutmanager/platform/ios/TextLayoutManager.mm +++ b/ReactCommon/fabric/textlayoutmanager/platform/ios/TextLayoutManager.mm @@ -17,21 +17,23 @@ TextLayoutManager::TextLayoutManager(ContextContainer::Shared const &contextCont self_ = (__bridge_retained void *)[RCTTextLayoutManager new]; } -TextLayoutManager::~TextLayoutManager() { +TextLayoutManager::~TextLayoutManager() +{ CFRelease(self_); self_ = nullptr; } -void *TextLayoutManager::getNativeTextLayoutManager() const { +void *TextLayoutManager::getNativeTextLayoutManager() const +{ return self_; } Size TextLayoutManager::measure( AttributedString attributedString, ParagraphAttributes paragraphAttributes, - LayoutConstraints layoutConstraints) const { - RCTTextLayoutManager *textLayoutManager = - (__bridge RCTTextLayoutManager *)self_; + LayoutConstraints layoutConstraints) const +{ + RCTTextLayoutManager *textLayoutManager = (__bridge RCTTextLayoutManager *)self_; return [textLayoutManager measureWithAttributedString:attributedString paragraphAttributes:paragraphAttributes layoutConstraints:layoutConstraints];