diff options
author | Poommetee Ketson <poommetee@protonmail.com> | 2017-07-10 01:48:39 +0700 |
---|---|---|
committer | Poommetee Ketson <poommetee@protonmail.com> | 2017-07-10 02:01:12 +0700 |
commit | 7c5a19dcd66883fea6574fddefdba8730f49d34c (patch) | |
tree | 9aff5bdd913be7b1f8e81a9f5032d5d8e00b6a55 /editor | |
parent | 0bf88e4b38ff6665cc3cc69c2d8a4723481b8586 (diff) |
Fix crash on closing [empty](*) scene tab
Diffstat (limited to 'editor')
-rw-r--r-- | editor/editor_node.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/editor/editor_node.cpp b/editor/editor_node.cpp index b61f82ffaf..a83906ddf3 100644 --- a/editor/editor_node.cpp +++ b/editor/editor_node.cpp @@ -2753,6 +2753,8 @@ int EditorNode::_next_unsaved_scene() { for (int i = 0; i < editor_data.get_edited_scene_count(); i++) { + if (!editor_data.get_edited_scene_root(i)) + continue; int current = editor_data.get_edited_scene(); bool unsaved = (i == current) ? saved_version != editor_data.get_undo_redo().get_version() : editor_data.get_scene_version(i) != 0; if (unsaved) { @@ -4383,6 +4385,10 @@ void EditorNode::_scene_tab_closed(int p_tab) { current_option = SCENE_TAB_CLOSE; tab_closing = p_tab; Node *scene = editor_data.get_edited_scene_root(p_tab); + if (!scene) { + _discard_changes(); + return; + } bool unsaved = (p_tab == editor_data.get_edited_scene()) ? saved_version != editor_data.get_undo_redo().get_version() : |