From 4e6efd1b07f1c6d53d226977ddc729333b74306a Mon Sep 17 00:00:00 2001 From: Aaron Franke Date: Thu, 15 Jul 2021 23:45:57 -0400 Subject: Use C++ iterators for Lists in many situations --- modules/gdscript/editor/gdscript_highlighter.cpp | 36 +++-- modules/gdscript/gdscript.cpp | 61 ++++---- modules/gdscript/gdscript_analyzer.cpp | 55 ++++--- modules/gdscript/gdscript_byte_codegen.cpp | 16 +- modules/gdscript/gdscript_compiler.cpp | 3 +- modules/gdscript/gdscript_editor.cpp | 166 ++++++++++----------- modules/gdscript/gdscript_function.cpp | 9 +- modules/gdscript/gdscript_parser.cpp | 21 ++- modules/gdscript/gdscript_utility_functions.cpp | 4 +- .../language_server/gdscript_extend_parser.cpp | 10 +- .../language_server/gdscript_text_document.cpp | 15 +- .../language_server/gdscript_workspace.cpp | 10 +- modules/gdscript/tests/gdscript_test_runner.cpp | 14 +- modules/gdscript/tests/test_gdscript.cpp | 12 +- 14 files changed, 205 insertions(+), 227 deletions(-) (limited to 'modules/gdscript') diff --git a/modules/gdscript/editor/gdscript_highlighter.cpp b/modules/gdscript/editor/gdscript_highlighter.cpp index 9a4c22f49f..b19a57d56a 100644 --- a/modules/gdscript/editor/gdscript_highlighter.cpp +++ b/modules/gdscript/editor/gdscript_highlighter.cpp @@ -458,8 +458,8 @@ void GDScriptSyntaxHighlighter::_update_cache() { const Color types_color = EDITOR_GET("text_editor/highlighting/engine_type_color"); List types; ClassDB::get_class_list(&types); - for (List::Element *E = types.front(); E; E = E->next()) { - String n = E->get(); + for (StringName &E : types) { + String n = E; if (n.begins_with("_")) { n = n.substr(1, n.length()); } @@ -470,8 +470,8 @@ void GDScriptSyntaxHighlighter::_update_cache() { const Color usertype_color = EDITOR_GET("text_editor/highlighting/user_type_color"); List global_classes; ScriptServer::get_global_class_list(&global_classes); - for (List::Element *E = global_classes.front(); E; E = E->next()) { - keywords[String(E->get())] = usertype_color; + for (StringName &E : global_classes) { + keywords[String(E)] = usertype_color; } /* Autoloads. */ @@ -489,8 +489,8 @@ void GDScriptSyntaxHighlighter::_update_cache() { const Color basetype_color = EDITOR_GET("text_editor/highlighting/base_type_color"); List core_types; gdscript->get_core_type_words(&core_types); - for (List::Element *E = core_types.front(); E; E = E->next()) { - keywords[E->get()] = basetype_color; + for (String &E : core_types) { + keywords[E] = basetype_color; } /* Reserved words. */ @@ -498,11 +498,11 @@ void GDScriptSyntaxHighlighter::_update_cache() { const Color control_flow_keyword_color = EDITOR_GET("text_editor/highlighting/control_flow_keyword_color"); List keyword_list; gdscript->get_reserved_words(&keyword_list); - for (List::Element *E = keyword_list.front(); E; E = E->next()) { - if (gdscript->is_control_flow_keyword(E->get())) { - keywords[E->get()] = control_flow_keyword_color; + for (String &E : keyword_list) { + if (gdscript->is_control_flow_keyword(E)) { + keywords[E] = control_flow_keyword_color; } else { - keywords[E->get()] = keyword_color; + keywords[E] = keyword_color; } } @@ -510,8 +510,7 @@ void GDScriptSyntaxHighlighter::_update_cache() { const Color comment_color = EDITOR_GET("text_editor/highlighting/comment_color"); List comments; gdscript->get_comment_delimiters(&comments); - for (List::Element *E = comments.front(); E; E = E->next()) { - String comment = E->get(); + for (String &comment : comments) { String beg = comment.get_slice(" ", 0); String end = comment.get_slice_count(" ") > 1 ? comment.get_slice(" ", 1) : String(); add_color_region(beg, end, comment_color, end == ""); @@ -521,8 +520,7 @@ void GDScriptSyntaxHighlighter::_update_cache() { const Color string_color = EDITOR_GET("text_editor/highlighting/string_color"); List strings; gdscript->get_string_delimiters(&strings); - for (List::Element *E = strings.front(); E; E = E->next()) { - String string = E->get(); + for (String &string : strings) { String beg = string.get_slice(" ", 0); String end = string.get_slice_count(" ") > 1 ? string.get_slice(" ", 1) : String(); add_color_region(beg, end, string_color, end == ""); @@ -536,9 +534,9 @@ void GDScriptSyntaxHighlighter::_update_cache() { if (instance_base != StringName()) { List plist; ClassDB::get_property_list(instance_base, &plist); - for (List::Element *E = plist.front(); E; E = E->next()) { - String name = E->get().name; - if (E->get().usage & PROPERTY_USAGE_CATEGORY || E->get().usage & PROPERTY_USAGE_GROUP || E->get().usage & PROPERTY_USAGE_SUBGROUP) { + for (PropertyInfo &E : plist) { + String name = E.name; + if (E.usage & PROPERTY_USAGE_CATEGORY || E.usage & PROPERTY_USAGE_GROUP || E.usage & PROPERTY_USAGE_SUBGROUP) { continue; } if (name.find("/") != -1) { @@ -549,8 +547,8 @@ void GDScriptSyntaxHighlighter::_update_cache() { List clist; ClassDB::get_integer_constant_list(instance_base, &clist); - for (List::Element *E = clist.front(); E; E = E->next()) { - member_keywords[E->get()] = member_variable_color; + for (String &E : clist) { + member_keywords[E] = member_variable_color; } } } diff --git a/modules/gdscript/gdscript.cpp b/modules/gdscript/gdscript.cpp index f7113674ec..79cc90b92f 100644 --- a/modules/gdscript/gdscript.cpp +++ b/modules/gdscript/gdscript.cpp @@ -291,8 +291,8 @@ void GDScript::_get_script_property_list(List *r_list, bool p_incl sptr = sptr->_base; } - for (List::Element *E = props.front(); E; E = E->next()) { - r_list->push_back(E->get()); + for (PropertyInfo &E : props) { + r_list->push_back(E); } } @@ -401,8 +401,8 @@ void GDScript::_update_exports_values(Map &values, Listkey()] = E->get(); } - for (List::Element *E = members_cache.front(); E; E = E->next()) { - propnames.push_back(E->get()); + for (PropertyInfo &E : members_cache) { + propnames.push_back(E); } } @@ -861,8 +861,8 @@ Error GDScript::reload(bool p_keep_state) { } } #ifdef DEBUG_ENABLED - for (const List::Element *E = parser.get_warnings().front(); E; E = E->next()) { - const GDScriptWarning &warning = E->get(); + for (const GDScriptWarning &E : parser.get_warnings()) { + const GDScriptWarning &warning = E; if (EngineDebugger::is_active()) { Vector si; EngineDebugger::get_script_debugger()->send_error("", get_path(), warning.start_line, warning.get_name(), warning.get_message(), ERR_HANDLER_WARNING, si); @@ -1445,8 +1445,8 @@ void GDScriptInstance::get_property_list(List *p_properties) const sptr = sptr->_base; } - for (List::Element *E = props.front(); E; E = E->next()) { - p_properties->push_back(E->get()); + for (PropertyInfo &E : props) { + p_properties->push_back(E); } } @@ -1644,8 +1644,7 @@ void GDScriptLanguage::init() { List class_list; ClassDB::get_class_list(&class_list); - for (List::Element *E = class_list.front(); E; E = E->next()) { - StringName n = E->get(); + for (StringName &n : class_list) { String s = String(n); if (s.begins_with("_")) { n = s.substr(1, s.length()); @@ -1654,7 +1653,7 @@ void GDScriptLanguage::init() { if (globals.has(n)) { continue; } - Ref nc = memnew(GDScriptNativeClass(E->get())); + Ref nc = memnew(GDScriptNativeClass(n)); _add_global(n, nc); } @@ -1662,8 +1661,8 @@ void GDScriptLanguage::init() { List singletons; Engine::get_singleton()->get_singletons(&singletons); - for (List::Element *E = singletons.front(); E; E = E->next()) { - _add_global(E->get().name, E->get().ptr); + for (Engine::Singleton &E : singletons) { + _add_global(E.name, E.ptr); } #ifdef TESTS_ENABLED @@ -1806,10 +1805,10 @@ void GDScriptLanguage::reload_all_scripts() { scripts.sort_custom(); //update in inheritance dependency order - for (List>::Element *E = scripts.front(); E; E = E->next()) { - print_verbose("GDScript: Reloading: " + E->get()->get_path()); - E->get()->load_source_code(E->get()->get_path()); - E->get()->reload(true); + for (Ref E : scripts) { + print_verbose("GDScript: Reloading: " + E->get_path()); + E->load_source_code(E->get_path()); + E->reload(true); } #endif } @@ -1838,21 +1837,21 @@ void GDScriptLanguage::reload_tool_script(const Ref