From 061db1ca95ff3476069a501cc96f14c479789c83 Mon Sep 17 00:00:00 2001 From: Juan Linietsky Date: Fri, 5 Jan 2018 19:02:54 -0300 Subject: Avoid crashing when dependencies on inherited/instanced scenes cant be satisfied, fixes #15298 --- editor/editor_node.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/editor/editor_node.cpp b/editor/editor_node.cpp index 7f8ee79304..8609697518 100644 --- a/editor/editor_node.cpp +++ b/editor/editor_node.cpp @@ -1021,7 +1021,7 @@ void EditorNode::_save_scene(String p_file, int idx) { current_option = -1; accept->get_ok()->set_text(TTR("I see..")); - accept->set_text(TTR("Couldn't save scene. Likely dependencies (instances) couldn't be satisfied.")); + accept->set_text(TTR("Couldn't save scene. Likely dependencies (instances or inheritance) couldn't be satisfied.")); accept->popup_centered_minsize(); return; } @@ -1029,6 +1029,13 @@ void EditorNode::_save_scene(String p_file, int idx) { // force creation of node path cache // (hacky but needed for the tree to update properly) Node *dummy_scene = sdata->instance(PackedScene::GEN_EDIT_STATE_INSTANCE); + if (!dummy_scene) { + current_option = -1; + accept->get_ok()->set_text(TTR("I see..")); + accept->set_text(TTR("Couldn't save scene. Likely dependencies (instances or inheritance) couldn't be satisfied.")); + accept->popup_centered_minsize(); + return; + } memdelete(dummy_scene); int flg = 0; -- cgit v1.2.3