Invalidate layout when node is removed from tree

Summary: The layout of a node is invalid once it leaves the tree. Let's reset it for safety in case it is added to another tree.

Reviewed By: astreet

Differential Revision: D4716022

fbshipit-source-id: 399cc64a4b3f5fd3fc469ea37bdd31abe474dc6c
This commit is contained in:
Emil Sjolander
2017-03-17 09:07:23 -07:00
committed by Facebook Github Bot
parent 9b13fdeae4
commit 249d010dad
2 changed files with 37 additions and 0 deletions

View File

@@ -423,6 +423,7 @@ void YGNodeInsertChild(const YGNodeRef node, const YGNodeRef child, const uint32
void YGNodeRemoveChild(const YGNodeRef node, const YGNodeRef child) {
if (YGNodeListDelete(node->children, child) != NULL) {
child->layout = gYGNodeDefaults.layout; // layout is no longer valid
child->parent = NULL;
YGNodeMarkDirtyInternal(node);
}