Clear added/removed provides from previous builds

This commit is contained in:
Martchus 2021-06-22 00:02:28 +02:00
parent f685fddd20
commit 8b70cc5f8e
2 changed files with 10 additions and 2 deletions

View File

@ -112,6 +112,7 @@ struct LIBREPOMGR_EXPORT RebuildInfo : public ReflectiveRapidJSON::JsonSerializa
std::vector<LibPkg::Dependency> provides;
std::vector<std::string> libprovides;
void replace(const LibPkg::DependencySet &deps, const std::unordered_set<std::string> &libs);
void add(const LibPkg::DependencySet &deps, const std::unordered_set<std::string> &libs);
};

View File

@ -38,6 +38,13 @@ using namespace CppUtilities::EscapeCodes;
namespace LibRepoMgr {
void RebuildInfo::replace(const LibPkg::DependencySet &deps, const std::unordered_set<std::string> &libs)
{
provides.clear();
libprovides.clear();
add(deps, libs);
}
void RebuildInfo::add(const LibPkg::DependencySet &deps, const std::unordered_set<std::string> &libs)
{
for (const auto &dep : deps) {
@ -1477,8 +1484,8 @@ PackageStagingNeeded ConductBuild::checkWhetherStagingIsNeededAndPopulateRebuild
// populate m_buildProgress.producedProvides and m_buildProgress.removedProvides (which only serve informal purposes)
std::lock_guard rebuildListLock(m_rebuildListMutex);
m_buildProgress.producedProvides[packageName].add(addedProvides, addedLibProvides);
m_buildProgress.removedProvides[packageName].add(removedProvides, removedLibProvides);
m_buildProgress.producedProvides[packageName].replace(addedProvides, addedLibProvides);
m_buildProgress.removedProvides[packageName].replace(removedProvides, removedLibProvides);
// skip any further checks if nothing will be removed anyways
if (removedProvides.empty() && removedLibProvides.empty()) {