Browse Source

Fix crash when restoring script editor state

Paulb23 6 years ago
parent
commit
2fedd2559c
1 changed files with 10 additions and 4 deletions
  1. 10 4
      editor/plugins/script_editor_plugin.cpp

+ 10 - 4
editor/plugins/script_editor_plugin.cpp

@@ -2507,19 +2507,25 @@ void ScriptEditor::set_window_layout(Ref<ConfigFile> p_layout) {
 			if (!scr.is_valid()) {
 			if (!scr.is_valid()) {
 				continue;
 				continue;
 			}
 			}
-			edit(scr);
+			if (!edit(scr)) {
+				continue;
+			}
 		} else {
 		} else {
 			Error error;
 			Error error;
 			Ref<TextFile> text_file = _load_text_file(path, &error);
 			Ref<TextFile> text_file = _load_text_file(path, &error);
 			if (error != OK || !text_file.is_valid()) {
 			if (error != OK || !text_file.is_valid()) {
 				continue;
 				continue;
 			}
 			}
-			edit(text_file);
+			if (!edit(text_file)) {
+				continue;
+			}
 		}
 		}
 
 
 		if (!script_info.empty()) {
 		if (!script_info.empty()) {
-			ScriptEditorBase *se = Object::cast_to<ScriptEditorBase>(tab_container->get_child(i));
-			se->set_edit_state(script_info["state"]);
+			ScriptEditorBase *se = Object::cast_to<ScriptEditorBase>(tab_container->get_child(tab_container->get_tab_count() - 1));
+			if (se) {
+				se->set_edit_state(script_info["state"]);
+			}
 		}
 		}
 	}
 	}