From a50fc5acd81e0aa7d69e23faa462ecb6bbdad165 Mon Sep 17 00:00:00 2001 From: Yufeng Ying Date: Wed, 8 Jan 2025 20:01:55 +0800 Subject: [PATCH] Change ClassDB::get_class_list and related stuff. --- core/core_bind.cpp | 10 +++--- core/debugger/remote_debugger.cpp | 24 ++++++------- core/extension/extension_api_dump.cpp | 6 ++-- core/io/resource_loader.cpp | 4 +-- core/io/resource_saver.cpp | 4 +-- core/object/class_db.cpp | 33 +++++++++++++---- core/object/class_db.h | 4 +-- core/object/script_language.cpp | 30 +++++++++------- core/object/script_language.h | 2 +- editor/doc/doc_tools.cpp | 16 ++++----- editor/editor_data.cpp | 4 +-- editor/file_system/editor_file_system.cpp | 4 +-- editor/gui/create_dialog.cpp | 6 ++-- .../project_converter_3_to_4.cpp | 4 +-- editor/script/script_editor_plugin.cpp | 16 ++++----- editor/settings/editor_build_profile.cpp | 12 +++---- editor/shader/visual_shader_editor_plugin.cpp | 22 ++++++------ .../gdscript/editor/gdscript_highlighter.cpp | 18 +++++----- modules/gdscript/gdscript.cpp | 12 +++---- modules/gdscript/gdscript_editor.cpp | 36 +++++++++---------- modules/mono/class_db_api_json.cpp | 10 +++--- modules/mono/editor/bindings_generator.cpp | 15 ++------ tests/core/object/test_class_db.h | 13 +++---- 23 files changed, 155 insertions(+), 150 deletions(-) diff --git a/core/core_bind.cpp b/core/core_bind.cpp index f58556468ac..fc7fb4a20e7 100644 --- a/core/core_bind.cpp +++ b/core/core_bind.cpp @@ -1545,14 +1545,16 @@ namespace Special { ////// ClassDB ////// PackedStringArray ClassDB::get_class_list() const { - List classes; - ::ClassDB::get_class_list(&classes); + LocalVector classes; + ::ClassDB::get_class_list(classes); PackedStringArray ret; ret.resize(classes.size()); + String *ptrw = ret.ptrw(); int idx = 0; - for (const StringName &E : classes) { - ret.set(idx++, E); + for (const StringName &cls : classes) { + ptrw[idx] = cls; + idx++; } return ret; diff --git a/core/debugger/remote_debugger.cpp b/core/debugger/remote_debugger.cpp index 76b19a3903a..79fd76bf699 100644 --- a/core/debugger/remote_debugger.cpp +++ b/core/debugger/remote_debugger.cpp @@ -566,25 +566,25 @@ void RemoteDebugger::debug(bool p_can_continue, bool p_is_error_breakpoint) { input_vals.append(V); } - List native_types; - ClassDB::get_class_list(&native_types); - for (const StringName &E : native_types) { - if (!ClassDB::is_class_exposed(E) || !Engine::get_singleton()->has_singleton(E) || Engine::get_singleton()->is_singleton_editor_only(E)) { + LocalVector native_types; + ClassDB::get_class_list(native_types); + for (const StringName &class_name : native_types) { + if (!ClassDB::is_class_exposed(class_name) || !Engine::get_singleton()->has_singleton(class_name) || Engine::get_singleton()->is_singleton_editor_only(class_name)) { continue; } - input_names.append(E); - input_vals.append(Engine::get_singleton()->get_singleton_object(E)); + input_names.append(class_name); + input_vals.append(Engine::get_singleton()->get_singleton_object(class_name)); } - List user_types; - ScriptServer::get_global_class_list(&user_types); - for (const StringName &S : user_types) { - String scr_path = ScriptServer::get_global_class_path(S); + LocalVector user_types; + ScriptServer::get_global_class_list(user_types); + for (const StringName &class_name : user_types) { + String scr_path = ScriptServer::get_global_class_path(class_name); Ref