From 2e4e8bb87c9d0d43e36f5dd5671ea6d811113c18 Mon Sep 17 00:00:00 2001 From: kleonc <9283098+kleonc@users.noreply.github.com> Date: Wed, 4 May 2022 00:49:34 +0200 Subject: [PATCH] Fix inspecting nested dictionaries/arrays when debugging --- editor/script_editor_debugger.cpp | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/editor/script_editor_debugger.cpp b/editor/script_editor_debugger.cpp index 2adb05b99bf..db68168e7ea 100644 --- a/editor/script_editor_debugger.cpp +++ b/editor/script_editor_debugger.cpp @@ -672,7 +672,8 @@ void ScriptEditorDebugger::_parse_message(const String &p_msg, const Array &p_da new_props_added++; debugObj->prop_values[pinfo.name] = var; } else { - if (bool(Variant::evaluate(Variant::OP_NOT_EQUAL, debugObj->prop_values[pinfo.name], var))) { + // Compare using `deep_equal` so dictionaries/arrays will be compared by value. + if (!debugObj->prop_values[pinfo.name].deep_equal(var)) { debugObj->prop_values[pinfo.name] = var; changed.insert(pinfo.name); } @@ -715,7 +716,6 @@ void ScriptEditorDebugger::_parse_message(const String &p_msg, const Array &p_da vmem_total->set_tooltip(TTR("Bytes:") + " " + itos(total)); vmem_total->set_text(String::humanize_size(total)); - } else if (p_msg == "stack_dump") { stack_dump->clear(); TreeItem *r = stack_dump->create_item(); @@ -801,7 +801,6 @@ void ScriptEditorDebugger::_parse_message(const String &p_msg, const Array &p_da variables->update(); inspector->edit(variables); - } else if (p_msg == "output") { //OUT for (int i = 0; i < p_data.size(); i++) { @@ -837,7 +836,6 @@ void ScriptEditorDebugger::_parse_message(const String &p_msg, const Array &p_da EditorNode::get_log()->add_message(str, msg_type); } - } else if (p_msg == "performance") { Array arr = p_data[0]; Vector p; @@ -871,7 +869,6 @@ void ScriptEditorDebugger::_parse_message(const String &p_msg, const Array &p_da } perf_history.push_front(p); perf_draw->update(); - } else if (p_msg == "error") { // Should have at least two elements, error array and stack items count. ERR_FAIL_COND_MSG(p_data.size() < 2, "Malformed error message from script debugger."); @@ -999,11 +996,9 @@ void ScriptEditorDebugger::_parse_message(const String &p_msg, const Array &p_da } else { error_count++; } - } else if (p_msg == "profile_sig") { //cache a signature profiler_signature[p_data[1]] = p_data[0]; - } else if (p_msg == "profile_frame" || p_msg == "profile_total") { EditorProfiler::Metric metric; metric.valid = true;