mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-01-08 15:20:45 +01:00
Simplify std::remove
with std::erase
`std::erase` is a replacement for the remove-erase idiom. Changes to `OpenModeToAndroid` inadvertently revealed that the prior implementation had UB (potentially deleting the end iterator). This is now fixed.
This commit is contained in:
parent
4fde0f2868
commit
be0b13da97
@ -62,7 +62,7 @@ bool IsPathAndroidContent(std::string_view uri)
|
||||
std::string OpenModeToAndroid(std::string mode)
|
||||
{
|
||||
// The 'b' specifier is not supported by Android. Since we're on POSIX, it's fine to just skip it.
|
||||
mode.erase(std::remove(mode.begin(), mode.end(), 'b'));
|
||||
std::erase(mode, 'b');
|
||||
|
||||
if (mode == "r")
|
||||
return "r";
|
||||
|
@ -309,11 +309,9 @@ void Settings::RemovePath(const QString& qpath)
|
||||
std::string path = qpath.toStdString();
|
||||
std::vector<std::string> paths = Config::GetIsoPaths();
|
||||
|
||||
auto new_end = std::remove(paths.begin(), paths.end(), path);
|
||||
if (new_end == paths.end())
|
||||
if (std::erase(paths, path) == 0)
|
||||
return;
|
||||
|
||||
paths.erase(new_end, paths.end());
|
||||
Config::SetIsoPaths(paths);
|
||||
emit PathRemoved(qpath);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user