Skip to content

Commit

Permalink
Don't recursively call _update_tree
Browse files Browse the repository at this point in the history
When a node was previously selected and the test "selected == p_node"
was true the code would use set_selected() to change the selection to
nullptr. However, if the tree is dirty, which is always true in this
codepath, this would lead to a recursive call to _update_tree()
ultimately leading to a crash due to us running out of stack.

This fixes godotengine#100666
  • Loading branch information
hpvb committed Dec 20, 2024
1 parent 89001f9 commit 62cff66
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion editor/gui/scene_tree_editor.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -369,7 +369,7 @@ void SceneTreeEditor::_update_node_subtree(Node *p_node, TreeItem *p_parent, boo
item->set_selectable(0, false);
item->deselect(0);
if (selected == p_node) {
set_selected(nullptr, false);
selected = nullptr;
}
}
}
Expand Down

0 comments on commit 62cff66

Please sign in to comment.