From 917031443495bbfe68e86bc487eef5961eeb88a7 Mon Sep 17 00:00:00 2001 From: Marcel Admiraal Date: Sat, 17 Apr 2021 20:25:18 +0100 Subject: [PATCH] Avoid creating joy_names map entries when using Map operator[] --- main/input_default.cpp | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/main/input_default.cpp b/main/input_default.cpp index f62f17b80c6..f885722c682 100644 --- a/main/input_default.cpp +++ b/main/input_default.cpp @@ -1216,9 +1216,10 @@ void InputDefault::add_joy_mapping(String p_mapping, bool p_update_existing) { if (p_update_existing) { Vector entry = p_mapping.split(","); String uid = entry[0]; - for (int i = 0; i < joy_names.size(); i++) { - if (uid == joy_names[i].uid) { - joy_names[i].mapping = map_db.size() - 1; + for (Map::Element *E = joy_names.front(); E; E = E->next()) { + Joypad &joy = E->get(); + if (joy.uid == uid) { + joy.mapping = map_db.size() - 1; } } } @@ -1230,9 +1231,10 @@ void InputDefault::remove_joy_mapping(String p_guid) { map_db.remove(i); } } - for (int i = 0; i < joy_names.size(); i++) { - if (joy_names[i].uid == p_guid) { - joy_names[i].mapping = -1; + for (Map::Element *E = joy_names.front(); E; E = E->next()) { + Joypad &joy = E->get(); + if (joy.uid == p_guid) { + joy.mapping = -1; } } } @@ -1259,8 +1261,13 @@ String InputDefault::get_joy_guid(int p_device) const { //platforms that use the remapping system can override and call to these ones bool InputDefault::is_joy_mapped(int p_device) { - int mapping = joy_names[p_device].mapping; - return mapping != -1 ? (mapping != fallback_mapping) : false; + if (joy_names.has(p_device)) { + int mapping = joy_names[p_device].mapping; + if (mapping != -1 && mapping != fallback_mapping) { + return true; + } + } + return false; } String InputDefault::get_joy_guid_remapped(int p_device) const {