summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--item_updater.cpp9
1 files changed, 8 insertions, 1 deletions
diff --git a/item_updater.cpp b/item_updater.cpp
index 1596a4b..30e6b0a 100644
--- a/item_updater.cpp
+++ b/item_updater.cpp
@@ -351,14 +351,21 @@ void ItemUpdater::erase(std::string entryId)
void ItemUpdater::deleteAll()
{
+ std::vector<std::string> deletableVersions;
+
for (const auto& versionIt : versions)
{
if (!versionIt.second->isFunctional())
{
- ItemUpdater::erase(versionIt.first);
+ deletableVersions.push_back(versionIt.first);
}
}
+ for (const auto& deletableIt : deletableVersions)
+ {
+ ItemUpdater::erase(deletableIt);
+ }
+
// Remove any volumes that do not match current versions.
auto method = bus.new_method_call(
SYSTEMD_BUSNAME,
OpenPOWER on IntegriCloud