mirror of
https://github.com/zhigang1992/react-native.git
synced 2026-04-06 22:38:37 +08:00
Recycle CSSNodes
Summary: Adds a pool to recycle CSSNodes within UIManager. A follow-up diff will hook this up to a memory pressure listener to drop the pool on memory pressure. Reviewed By: emilsjolander Differential Revision: D4189532 fbshipit-source-id: 46583546f71a8c59853e1dd124de31657b3c617b
This commit is contained in:
committed by
Facebook Github Bot
parent
7c91f894ba
commit
bd8745b1fd
@@ -652,12 +652,17 @@ public class UIImplementation {
|
||||
}
|
||||
|
||||
protected final void removeShadowNode(ReactShadowNode nodeToRemove) {
|
||||
mNativeViewHierarchyOptimizer.handleRemoveNode(nodeToRemove);
|
||||
removeShadowNodeRecursive(nodeToRemove);
|
||||
nodeToRemove.dispose();
|
||||
}
|
||||
|
||||
private void removeShadowNodeRecursive(ReactShadowNode nodeToRemove) {
|
||||
NativeViewHierarchyOptimizer.handleRemoveNode(nodeToRemove);
|
||||
mShadowNodeRegistry.removeNode(nodeToRemove.getReactTag());
|
||||
for (int i = nodeToRemove.getChildCount() - 1; i >= 0; i--) {
|
||||
removeShadowNode(nodeToRemove.getChildAt(i));
|
||||
removeShadowNodeRecursive(nodeToRemove.getChildAt(i));
|
||||
}
|
||||
nodeToRemove.removeAllChildren();
|
||||
nodeToRemove.removeAndDisposeAllChildren();
|
||||
}
|
||||
|
||||
private void measureLayout(int tag, int ancestorTag, int[] outputBuffer) {
|
||||
|
||||
Reference in New Issue
Block a user