From b3a5e10f4a72732d3bc1e6bf075d507c1a8159a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pedro=20J=2E=20Est=C3=A9banez?= Date: Wed, 2 Aug 2023 11:43:35 +0200 Subject: [PATCH] Avoid crash on exiting due to late prints --- editor/editor_node.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/editor/editor_node.cpp b/editor/editor_node.cpp index 2fa02ae1d439..e0a014ac1afa 100644 --- a/editor/editor_node.cpp +++ b/editor/editor_node.cpp @@ -6730,6 +6730,9 @@ void EditorNode::_print_handler(void *p_this, const String &p_string, bool p_err } void EditorNode::_print_handler_impl(const String &p_string, bool p_error, bool p_rich) { + if (!singleton) { + return; + } if (p_error) { singleton->log->add_message(p_string, EditorLog::MSG_TYPE_ERROR); } else if (p_rich) { @@ -6845,6 +6848,7 @@ EditorNode::EditorNode() { DisplayServer::get_singleton()->cursor_set_custom_image(Ref()); } + DEV_ASSERT(!singleton); singleton = this; EditorUndoRedoManager::get_singleton()->connect("version_changed", callable_mp(this, &EditorNode::_update_undo_redo_allowed)); @@ -8210,6 +8214,8 @@ EditorNode::~EditorNode() { GDExtensionEditorPlugins::editor_node_add_plugin = nullptr; GDExtensionEditorPlugins::editor_node_remove_plugin = nullptr; + + singleton = nullptr; } /*