diff options
author | AlexHolly <alexander.holland@live.de> | 2017-03-12 18:50:43 +0100 |
---|---|---|
committer | AlexHolly <alexander.holland@live.de> | 2017-03-12 18:50:43 +0100 |
commit | 3f78f1f17db3b80279bd9c4a177913ea36aa130d (patch) | |
tree | 2307dec24acf2657386edda942034b221947daba /scene | |
parent | 6d15e157329840732452e66a944186d9f230f8d1 (diff) |
fix remove_and_skip()
Diffstat (limited to 'scene')
-rwxr-xr-x[-rw-r--r--] | scene/main/node.cpp | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/scene/main/node.cpp b/scene/main/node.cpp index 864e26a651..20c7d8f221 100644..100755 --- a/scene/main/node.cpp +++ b/scene/main/node.cpp @@ -2020,12 +2020,13 @@ void Node::remove_and_skip() { bool clear = true; for (int i = 0; i < data.children.size(); i++) { - if (!data.children[i]->get_owner()) + Node *c_node = data.children[i]; + if (!c_node->get_owner()) continue; - remove_child(data.children[i]); - data.children[i]->_propagate_replace_owner(this, NULL); - children.push_back(data.children[i]); + remove_child(c_node); + c_node->_propagate_replace_owner(this, NULL); + children.push_back(c_node); clear = false; break; } @@ -2036,9 +2037,9 @@ void Node::remove_and_skip() { while (!children.empty()) { - Node *c = children.front()->get(); - data.parent->add_child(c); - c->_propagate_replace_owner(NULL, new_owner); + Node *c_node = children.front()->get(); + data.parent->add_child(c_node); + c_node->_propagate_replace_owner(NULL, new_owner); children.pop_front(); } |