Let queue_free() work on nodes which are not in the scene tree
In practice such nodes could directly be free()'ed, but this little change prevents users from leaking memory by mistake. Closes #9074.
This commit is contained in:
parent
e3617cb187
commit
4820dfc570
1 changed files with 5 additions and 2 deletions
|
@ -2572,8 +2572,11 @@ void Node::print_stray_nodes() {
|
|||
|
||||
void Node::queue_delete() {
|
||||
|
||||
ERR_FAIL_COND(!is_inside_tree());
|
||||
get_tree()->queue_delete(this);
|
||||
if (is_inside_tree()) {
|
||||
get_tree()->queue_delete(this);
|
||||
} else {
|
||||
SceneTree::get_singleton()->queue_delete(this);
|
||||
}
|
||||
}
|
||||
|
||||
Array Node::_get_children() const {
|
||||
|
|
Loading…
Reference in a new issue