Skip to content

Commit 8ae1669

Browse files
committed
Do not use Dictionary::keys() for Dictionary iteration.
1 parent 4b36c04 commit 8ae1669

18 files changed

+78
-102
lines changed

core/extension/extension_api_dump.cpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1343,16 +1343,16 @@ static bool compare_value(const String &p_path, const String &p_field, const Var
13431343
} else if (p_old_value.get_type() == Variant::DICTIONARY && p_new_value.get_type() == Variant::DICTIONARY) {
13441344
Dictionary old_dict = p_old_value;
13451345
Dictionary new_dict = p_new_value;
1346-
for (const Variant &key : old_dict.keys()) {
1347-
if (!new_dict.has(key)) {
1346+
for (const KeyValue<Variant, Variant> &kv : old_dict) {
1347+
if (!new_dict.has(kv.key)) {
13481348
failed = true;
1349-
print_error(vformat("Validate extension JSON: Error: Field '%s': %s was removed.", p_path, key));
1349+
print_error(vformat("Validate extension JSON: Error: Field '%s': %s was removed.", p_path, kv.key));
13501350
continue;
13511351
}
1352-
if (p_allow_name_change && key == "name") {
1352+
if (p_allow_name_change && kv.key == "name") {
13531353
continue;
13541354
}
1355-
if (!compare_value(path, key, old_dict[key], new_dict[key], p_allow_name_change)) {
1355+
if (!compare_value(path, kv.key, kv.value, new_dict[kv.key], p_allow_name_change)) {
13561356
failed = true;
13571357
}
13581358
}

core/io/http_client.cpp

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -70,10 +70,9 @@ Error HTTPClient::_request(Method p_method, const String &p_url, const Vector<St
7070

7171
String HTTPClient::query_string_from_dict(const Dictionary &p_dict) {
7272
String query = "";
73-
Array keys = p_dict.keys();
74-
for (int i = 0; i < keys.size(); ++i) {
75-
String encoded_key = String(keys[i]).uri_encode();
76-
const Variant &value = p_dict[keys[i]];
73+
for (const KeyValue<Variant, Variant> &kv : p_dict) {
74+
String encoded_key = String(kv.key).uri_encode();
75+
const Variant &value = kv.value;
7776
switch (value.get_type()) {
7877
case Variant::ARRAY: {
7978
// Repeat the key with every values

editor/debugger/script_editor_debugger.cpp

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -291,9 +291,8 @@ void ScriptEditorDebugger::_remote_object_selected(ObjectID p_id) {
291291
}
292292

293293
void ScriptEditorDebugger::_remote_objects_edited(const String &p_prop, const TypedDictionary<uint64_t, Variant> &p_values, const String &p_field) {
294-
const Array &ids = p_values.keys();
295-
for (uint64_t id : ids) {
296-
update_remote_object(ObjectID(id), p_prop, p_values[id], p_field);
294+
for (const KeyValue<Variant, Variant> &kv : p_values) {
295+
update_remote_object(ObjectID(static_cast<uint64_t>(kv.key)), p_prop, kv.value, p_field);
297296
}
298297
request_remote_objects(p_values.keys(), false);
299298
}

editor/dependency_editor.cpp

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -463,17 +463,16 @@ void DependencyRemoveDialog::_find_localization_remaps_of_removed_files(Vector<R
463463
p_removed.push_back(dep);
464464
}
465465

466-
Array remap_keys = remaps.keys();
467-
for (int j = 0; j < remap_keys.size(); j++) {
468-
PackedStringArray remapped_files = remaps[remap_keys[j]];
469-
for (int k = 0; k < remapped_files.size(); k++) {
470-
int splitter_pos = remapped_files[k].rfind_char(':');
471-
String res_path = remapped_files[k].substr(0, splitter_pos);
466+
for (const KeyValue<Variant, Variant> &remap_kv : remaps) {
467+
PackedStringArray remapped_files = remap_kv.value;
468+
for (const String &remapped_file : remapped_files) {
469+
int splitter_pos = remapped_file.rfind_char(':');
470+
String res_path = remapped_file.substr(0, splitter_pos);
472471
if (res_path == path) {
473-
String locale_name = remapped_files[k].substr(splitter_pos + 1);
472+
String locale_name = remapped_file.substr(splitter_pos + 1);
474473

475474
RemovedDependency dep;
476-
dep.file = vformat(TTR("Localization remap for path '%s' and locale '%s'."), remap_keys[j], locale_name);
475+
dep.file = vformat(TTR("Localization remap for path '%s' and locale '%s'."), remap_kv.key, locale_name);
477476
dep.file_type = "";
478477
dep.dependency = path;
479478
dep.dependency_folder = files.value;

editor/editor_command_palette.cpp

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -294,11 +294,10 @@ void EditorCommandPalette::register_shortcuts_as_command() {
294294

295295
// Load command use history.
296296
Dictionary command_history = EditorSettings::get_singleton()->get_project_metadata("command_palette", "command_history", Dictionary());
297-
Array history_entries = command_history.keys();
298-
for (int i = 0; i < history_entries.size(); i++) {
299-
const String &history_key = history_entries[i];
297+
for (const KeyValue<Variant, Variant> &history_kv : command_history) {
298+
const String &history_key = history_kv.key;
300299
if (commands.has(history_key)) {
301-
commands[history_key].last_used = command_history[history_key];
300+
commands[history_key].last_used = history_kv.value;
302301
}
303302
}
304303
}

editor/editor_inspector.cpp

Lines changed: 8 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -2229,10 +2229,8 @@ void EditorInspectorArray::_move_element(int p_element_index, int p_to_pos) {
22292229
undo_redo->add_undo_property(object, count_property, properties_as_array.size());
22302230
for (int i = 0; i < (int)properties_as_array.size(); i++) {
22312231
Dictionary d = Dictionary(properties_as_array[i]);
2232-
Array keys = d.keys();
2233-
for (int j = 0; j < keys.size(); j++) {
2234-
String key = keys[j];
2235-
undo_redo->add_undo_property(object, vformat(key, i), d[key]);
2232+
for (const KeyValue<Variant, Variant> &kv : d) {
2233+
undo_redo->add_undo_property(object, vformat(kv.key, i), kv.value);
22362234
}
22372235
}
22382236

@@ -2252,10 +2250,8 @@ void EditorInspectorArray::_move_element(int p_element_index, int p_to_pos) {
22522250
undo_redo->add_do_property(object, count_property, properties_as_array.size());
22532251
for (int i = 0; i < (int)properties_as_array.size(); i++) {
22542252
Dictionary d = properties_as_array[i];
2255-
Array keys = d.keys();
2256-
for (int j = 0; j < keys.size(); j++) {
2257-
String key = keys[j];
2258-
undo_redo->add_do_property(object, vformat(key, i), d[key]);
2253+
for (const KeyValue<Variant, Variant> &kv : d) {
2254+
undo_redo->add_do_property(object, vformat(kv.key, i), kv.value);
22592255
}
22602256
}
22612257
}
@@ -2306,10 +2302,8 @@ void EditorInspectorArray::_clear_array() {
23062302
undo_redo->add_undo_property(object, count_property, count);
23072303
for (int i = 0; i < (int)properties_as_array.size(); i++) {
23082304
Dictionary d = Dictionary(properties_as_array[i]);
2309-
Array keys = d.keys();
2310-
for (int j = 0; j < keys.size(); j++) {
2311-
String key = keys[j];
2312-
undo_redo->add_undo_property(object, vformat(key, i), d[key]);
2305+
for (const KeyValue<Variant, Variant> &kv : d) {
2306+
undo_redo->add_undo_property(object, vformat(kv.key, i), kv.value);
23132307
}
23142308
}
23152309

@@ -2371,10 +2365,8 @@ void EditorInspectorArray::_resize_array(int p_size) {
23712365
undo_redo->add_undo_property(object, count_property, count);
23722366
for (int i = count - 1; i > p_size - 1; i--) {
23732367
Dictionary d = Dictionary(properties_as_array[i]);
2374-
Array keys = d.keys();
2375-
for (int j = 0; j < keys.size(); j++) {
2376-
String key = keys[j];
2377-
undo_redo->add_undo_property(object, vformat(key, i), d[key]);
2368+
for (const KeyValue<Variant, Variant> &kv : d) {
2369+
undo_redo->add_undo_property(object, vformat(kv.key, i), kv.value);
23782370
}
23792371
}
23802372

editor/export/editor_export_platform.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1585,9 +1585,9 @@ Error EditorExportPlatform::export_project_files(const Ref<EditorExportPreset> &
15851585
}
15861586

15871587
Dictionary int_export = get_internal_export_files(p_preset, p_debug);
1588-
for (const Variant &int_name : int_export.keys()) {
1589-
const PackedByteArray &array = int_export[int_name];
1590-
err = save_proxy.save_file(p_udata, int_name, array, idx, total, enc_in_filters, enc_ex_filters, key, seed);
1588+
for (const KeyValue<Variant, Variant> &int_export_kv : int_export) {
1589+
const PackedByteArray &array = int_export_kv.value;
1590+
err = save_proxy.save_file(p_udata, int_export_kv.key, array, idx, total, enc_in_filters, enc_ex_filters, key, seed);
15911591
if (err != OK) {
15921592
return err;
15931593
}

editor/export/editor_export_preset.cpp

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -208,10 +208,9 @@ void EditorExportPreset::update_value_overrides() {
208208

209209
Dictionary plugin_overrides = export_plugins[i]->_get_export_options_overrides(platform);
210210
if (!plugin_overrides.is_empty()) {
211-
Array keys = plugin_overrides.keys();
212-
for (int x = 0; x < keys.size(); x++) {
213-
StringName key = keys[x];
214-
Variant value = plugin_overrides[key];
211+
for (const KeyValue<Variant, Variant> &kv : plugin_overrides) {
212+
const StringName &key = kv.key;
213+
const Variant &value = kv.value;
215214
if (new_value_overrides.has(key) && new_value_overrides[key] != value) {
216215
WARN_PRINT_ED(vformat("Editor export plugin '%s' overrides pre-existing export option override '%s' with new value.", export_plugins[i]->get_name(), key));
217216
}

editor/import/3d/resource_importer_scene.cpp

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2942,12 +2942,11 @@ static Error convert_path_to_uid(ResourceUID::ID p_source_id, const String &p_ha
29422942
}
29432943

29442944
Error ResourceImporterScene::_check_resource_save_paths(ResourceUID::ID p_source_id, const String &p_hash_suffix, const Dictionary &p_data) {
2945-
Array keys = p_data.keys();
2946-
for (int di = 0; di < keys.size(); di++) {
2947-
Dictionary settings = p_data[keys[di]];
2945+
for (const KeyValue<Variant, Variant> &kv : p_data) {
2946+
Dictionary settings = kv.value;
29482947

29492948
if (bool(settings.get("save_to_file/enabled", false)) && settings.has("save_to_file/path")) {
2950-
String to_hash = keys[di].operator String() + p_hash_suffix;
2949+
String to_hash = kv.key.operator String() + p_hash_suffix;
29512950
Error ret = convert_path_to_uid(p_source_id, to_hash, settings, "save_to_file/path", "save_to_file/fallback_path");
29522951
ERR_FAIL_COND_V_MSG(ret != OK, ret, vformat("Resource save path %s not valid. Ensure parent directory has been created.", settings.has("save_to_file/path")));
29532952
}
@@ -2957,7 +2956,7 @@ Error ResourceImporterScene::_check_resource_save_paths(ResourceUID::ID p_source
29572956
for (int si = 0; si < slice_count; si++) {
29582957
if (bool(settings.get("slice_" + itos(si + 1) + "/save_to_file/enabled", false)) &&
29592958
settings.has("slice_" + itos(si + 1) + "/save_to_file/path")) {
2960-
String to_hash = keys[di].operator String() + p_hash_suffix + itos(si + 1);
2959+
String to_hash = kv.key.operator String() + p_hash_suffix + itos(si + 1);
29612960
Error ret = convert_path_to_uid(p_source_id, to_hash, settings,
29622961
"slice_" + itos(si + 1) + "/save_to_file/path",
29632962
"slice_" + itos(si + 1) + "/save_to_file/fallback_path");

editor/localization_editor.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -439,8 +439,8 @@ void LocalizationEditor::_filesystem_files_moved(const String &p_old_file, const
439439

440440
// Check for the Array elements of the values.
441441
Array remap_keys = remaps.keys();
442-
for (int i = 0; i < remap_keys.size(); i++) {
443-
PackedStringArray remapped_files = remaps[remap_keys[i]];
442+
for (const Variant &remap_key : remap_keys) {
443+
PackedStringArray remapped_files = remaps[remap_key];
444444
bool remapped_files_updated = false;
445445

446446
for (int j = 0; j < remapped_files.size(); j++) {
@@ -454,12 +454,12 @@ void LocalizationEditor::_filesystem_files_moved(const String &p_old_file, const
454454
remapped_files.remove_at(j + 1);
455455
remaps_changed = true;
456456
remapped_files_updated = true;
457-
print_verbose(vformat("Changed remap value \"%s\" to \"%s\" of key \"%s\" due to a moved file.", res_path + ":" + locale_name, remapped_files[j], remap_keys[i]));
457+
print_verbose(vformat("Changed remap value \"%s\" to \"%s\" of key \"%s\" due to a moved file.", res_path + ":" + locale_name, remapped_files[j], remap_key));
458458
}
459459
}
460460

461461
if (remapped_files_updated) {
462-
remaps[remap_keys[i]] = remapped_files;
462+
remaps[remap_key] = remapped_files;
463463
}
464464
}
465465

0 commit comments

Comments
 (0)