summaryrefslogtreecommitdiff
path: root/editor
diff options
context:
space:
mode:
authorPoommetee Ketson <poommetee@protonmail.com>2017-07-10 01:48:39 +0700
committerPoommetee Ketson <poommetee@protonmail.com>2017-07-10 02:01:12 +0700
commit7c5a19dcd66883fea6574fddefdba8730f49d34c (patch)
tree9aff5bdd913be7b1f8e81a9f5032d5d8e00b6a55 /editor
parent0bf88e4b38ff6665cc3cc69c2d8a4723481b8586 (diff)
Fix crash on closing [empty](*) scene tab
Diffstat (limited to 'editor')
-rw-r--r--editor/editor_node.cpp6
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() :