From 1e1ebb049e71579f2250f39e380df8d1c3457f29 Mon Sep 17 00:00:00 2001 From: Evil Eye Date: Tue, 13 Jul 2021 21:18:24 +0200 Subject: [PATCH] Workaround clang and actually erase from the vector --- apps/openmw/mwworld/esmstore.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/apps/openmw/mwworld/esmstore.cpp b/apps/openmw/mwworld/esmstore.cpp index 3bfa01a3da..ecb2cad021 100644 --- a/apps/openmw/mwworld/esmstore.cpp +++ b/apps/openmw/mwworld/esmstore.cpp @@ -395,17 +395,18 @@ void ESMStore::validateDynamic() template void ESMStore::removeMissingObjects(Store& store) { - for(auto& [id, list] : store.mDynamic) + for(auto& entry : store.mDynamic) { - std::remove_if(list.mList.begin(), list.mList.end(), [&] (const auto& item) + auto first = std::remove_if(entry.second.mList.begin(), entry.second.mList.end(), [&] (const auto& item) { if(!find(item.mId)) { - Log(Debug::Verbose) << "Leveled list '" << id << "' has nonexistent object '" << item.mId << "', ignoring it."; + Log(Debug::Verbose) << "Leveled list '" << entry.first << "' has nonexistent object '" << item.mId << "', ignoring it."; return true; } return false; }); + entry.second.mList.erase(first, entry.second.mList.end()); } }