diff options
-rw-r--r-- | item_updater.cpp | 9 |
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, |