Fix YGNodeSetConfig causing excessive dirtying
Summary: X-link: https://github.com/facebook/react-native/pull/37316 In Fabric, a ShadowNode may re-initialize YGConfig several times throughout the lifetime of a perpetually cloned Yoga Node. RN sets `pointScaleFactor` lazily, when laying out the rootview. So right now it initializes a config to `pointScaleFactor` of 1.0, sets it, sets a new `pointScaleFactor` on the config, then repeats. This cycles the config between two `pointScaleFactor` values and will excessively dirty the node now that `YGNodeSetConfig` dirties on config change (D45505089) This change makes it so that we retain previously used `pointScaleFactor` when cloning the Yoga nodes. Changelog: [Internal] Reviewed By: rozele Differential Revision: D45669878 fbshipit-source-id: bfd2e185d9264a1cda64e59132960060385e16f1
This commit is contained in:
committed by
Facebook GitHub Bot
parent
b8126cdc6c
commit
a1fbbc6070
@@ -4075,6 +4075,10 @@ YOGA_EXPORT void YGConfigSetPointScaleFactor(
|
||||
}
|
||||
}
|
||||
|
||||
YOGA_EXPORT float YGConfigGetPointScaleFactor(const YGConfigRef config) {
|
||||
return config->getPointScaleFactor();
|
||||
}
|
||||
|
||||
static void YGRoundToPixelGrid(
|
||||
const YGNodeRef node,
|
||||
const double pointScaleFactor,
|
||||
|
Reference in New Issue
Block a user