Cleanup mNativeChildren on react node cleanup.

Differential Revision: D2663443

fb-gh-sync-id: 7e6e7212103b738f6b6f535e54cc8b86e5def685
This commit is contained in:
Krzysztof Magiera
2015-11-17 05:42:12 -08:00
committed by facebook-github-bot-8
parent 0b46a0c13b
commit 337dc7e093
3 changed files with 29 additions and 11 deletions

View File

@@ -399,17 +399,17 @@ public class UIManagerModule extends ReactContextBaseJavaModule implements
}
for (int i = 0; i < tagsToDelete.length; i++) {
removeCSSNode(tagsToDelete[i]);
removeShadowNode(mShadowNodeRegistry.getNode(tagsToDelete[i]));
}
}
private void removeCSSNode(int tag) {
ReactShadowNode node = mShadowNodeRegistry.getNode(tag);
mShadowNodeRegistry.removeNode(tag);
for (int i = node.getChildCount() - 1; i >= 0; i--) {
removeCSSNode(node.getChildAt(i).getReactTag());
private void removeShadowNode(ReactShadowNode nodeToRemove) {
mNativeViewHierarchyOptimizer.handleRemoveNode(nodeToRemove);
mShadowNodeRegistry.removeNode(nodeToRemove.getReactTag());
for (int i = nodeToRemove.getChildCount() - 1; i >= 0; i--) {
removeShadowNode(nodeToRemove.getChildAt(i));
}
node.removeAllChildren();
nodeToRemove.removeAllChildren();
}
/**