Skip to content

Commit

Permalink
Merge pull request #72248 from RedwanFox/mainloop_init_order_fix
Browse files Browse the repository at this point in the history
Ensure that SceneTree is initialized and finalized at correct time
  • Loading branch information
YuriSizov committed Jul 12, 2023
2 parents 95da8e1 + 83f065c commit 7ff2a93
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 10 deletions.
15 changes: 6 additions & 9 deletions scene/main/scene_tree.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -444,9 +444,8 @@ void SceneTree::set_group(const StringName &p_group, const String &p_name, const

void SceneTree::initialize() {
ERR_FAIL_NULL(root);
initialized = true;
root->_set_tree(this);
MainLoop::initialize();
root->_set_tree(this);
}

bool SceneTree::physics_process(double p_time) {
Expand Down Expand Up @@ -618,20 +617,18 @@ void SceneTree::finalize() {

_flush_ugc();

initialized = false;

MainLoop::finalize();

if (root) {
root->_set_tree(nullptr);
root->_propagate_after_exit_tree();
memdelete(root); //delete root
root = nullptr;

// In case deletion of some objects was queued when destructing the `root`.
// E.g. if `queue_free()` was called for some node outside the tree when handling NOTIFICATION_PREDELETE for some node in the tree.
_flush_delete_queue();
}

// In case deletion of some objects was queued when destructing the `root`.
// E.g. if `queue_free()` was called for some node outside the tree when handling NOTIFICATION_PREDELETE for some node in the tree.
_flush_delete_queue();
MainLoop::finalize();

// Cleanup timers.
for (Ref<SceneTreeTimer> &timer : timers) {
Expand Down
1 change: 0 additions & 1 deletion scene/main/scene_tree.h
Original file line number Diff line number Diff line change
Expand Up @@ -138,7 +138,6 @@ class SceneTree : public MainLoop {

HashMap<StringName, Group> group_map;
bool _quit = false;
bool initialized = false;

StringName tree_changed_name = "tree_changed";
StringName node_added_name = "node_added";
Expand Down

0 comments on commit 7ff2a93

Please sign in to comment.