void sack_recompute_considered(HySack sack) { Pool *pool = sack_pool(sack); if (sack->considered_uptodate) return; if (!pool->considered) { if (!sack->repo_excludes && !sack->pkg_excludes) return; pool->considered = solv_calloc(1, sizeof(Map)); map_init(pool->considered, pool->nsolvables); } else map_grow(pool->considered, pool->nsolvables); // considered = (all - repo_excludes - pkg_excludes) and pkg_includes map_setall(pool->considered); if (sack->repo_excludes) map_subtract(pool->considered, sack->repo_excludes); if (sack->pkg_excludes) map_subtract(pool->considered, sack->pkg_excludes); if (sack->pkg_includes) map_and(pool->considered, sack->pkg_includes); sack->considered_uptodate = 1; }
PackageSet & PackageSet::operator -=(const PackageSet & other) { map_subtract(&pImpl->map, &other.pImpl->map); return *this; }
PackageSet & PackageSet::operator -=(const Map * other) { map_subtract(&pImpl->map, const_cast<Map *>(other)); return *this; }