From 8a99241f8134e7f58fe14557f0d70fcb6a96d226 Mon Sep 17 00:00:00 2001 From: David Vacca Date: Sun, 1 Apr 2018 18:27:11 -0700 Subject: [PATCH] Re-enable Yoga cloning in React Shadow Node Reviewed By: achen1 Differential Revision: D7435365 fbshipit-source-id: 3e04b3252945112cf0c7206b0e6fb63535499eb9 --- .../java/com/facebook/react/fabric/FabricReconciler.java | 3 --- .../com/facebook/react/uimanager/ReactShadowNodeImpl.java | 8 ++------ 2 files changed, 2 insertions(+), 9 deletions(-) diff --git a/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricReconciler.java b/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricReconciler.java index cc851c228..3e8eca9ca 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricReconciler.java +++ b/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricReconciler.java @@ -96,9 +96,6 @@ public class FabricReconciler { indicesToRemove.add(0, j); if (!addedTags.contains(nodeToRemove.getReactTag())) { tagsToDelete.add(nodeToRemove.getReactTag()); - // TODO: T26729293 since we are not cloning ReactShadowNode's we need to "manually" remove - // from the ReactShadowTree when one of the nodes is deleted in JS. - nodeToRemove.getParent().removeChildAt(j); } } diff --git a/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactShadowNodeImpl.java b/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactShadowNodeImpl.java index 53a27c440..c5727e664 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactShadowNodeImpl.java +++ b/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactShadowNodeImpl.java @@ -150,9 +150,7 @@ public class ReactShadowNodeImpl implements ReactShadowNode @Override public ReactShadowNodeImpl mutableCopy() { ReactShadowNodeImpl copy = copy(); - copy.mYogaNode = mYogaNode; - // TODO: T26729293 clone YogaNode instead of reusing the same instance - //copy.mYogaNode = mYogaNode.clone(); + copy.mYogaNode = mYogaNode.clone(); copy.mNativeChildren = mNativeChildren == null ? null : new ArrayList<>(mNativeChildren); copy.mTotalNativeChildren = mTotalNativeChildren; copy.mChildren = mChildren == null ? null : new ArrayList<>(mChildren); @@ -170,9 +168,7 @@ public class ReactShadowNodeImpl implements ReactShadowNode @Override public ReactShadowNodeImpl mutableCopyWithNewChildren() { ReactShadowNodeImpl copy = copy(); - copy.mYogaNode = mYogaNode; - // TODO: T26729293 clone YogaNode instead of reusing the same instance - //copy.mYogaNode = mYogaNode.clone(); + copy.mYogaNode = mYogaNode.cloneWithNewChildren(); copy.mNativeChildren = null; copy.mChildren = null; copy.mTotalNativeChildren = 0;