summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGravatar Narr the Reg2023-01-27 22:31:41 -0600
committerGravatar Narr the Reg2023-01-28 12:50:27 -0600
commite84a441d756e1d9d2d80204cdef586b1c21cf155 (patch)
tree05781d89d4edc27d3b5faa1283f7f51786ca6df7 /src
parentMerge pull request #9685 from liamwhite/minmax (diff)
downloadyuzu-e84a441d756e1d9d2d80204cdef586b1c21cf155.tar.gz
yuzu-e84a441d756e1d9d2d80204cdef586b1c21cf155.tar.xz
yuzu-e84a441d756e1d9d2d80204cdef586b1c21cf155.zip
yuzu: config: Avoid reading deleted object
Diffstat (limited to 'src')
-rw-r--r--src/yuzu/configuration/input_profiles.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/yuzu/configuration/input_profiles.cpp b/src/yuzu/configuration/input_profiles.cpp
index 9bb69cab1..41ef4250a 100644
--- a/src/yuzu/configuration/input_profiles.cpp
+++ b/src/yuzu/configuration/input_profiles.cpp
@@ -58,13 +58,16 @@ std::vector<std::string> InputProfiles::GetInputProfileNames() {
58 std::vector<std::string> profile_names; 58 std::vector<std::string> profile_names;
59 profile_names.reserve(map_profiles.size()); 59 profile_names.reserve(map_profiles.size());
60 60
61 for (const auto& [profile_name, config] : map_profiles) { 61 auto it = map_profiles.cbegin();
62 while (it != map_profiles.cend()) {
63 const auto& [profile_name, config] = *it;
62 if (!ProfileExistsInFilesystem(profile_name)) { 64 if (!ProfileExistsInFilesystem(profile_name)) {
63 DeleteProfile(profile_name); 65 it = map_profiles.erase(it);
64 continue; 66 continue;
65 } 67 }
66 68
67 profile_names.push_back(profile_name); 69 profile_names.push_back(profile_name);
70 ++it;
68 } 71 }
69 72
70 std::stable_sort(profile_names.begin(), profile_names.end()); 73 std::stable_sort(profile_names.begin(), profile_names.end());