예제 #1
0
파일: sack.c 프로젝트: Tojaj/hawkey
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;
}
예제 #2
0
PackageSet &
PackageSet::operator -=(const PackageSet & other)
{
    map_subtract(&pImpl->map, &other.pImpl->map);
    return *this;
}
예제 #3
0
PackageSet &
PackageSet::operator -=(const Map * other)
{
    map_subtract(&pImpl->map, const_cast<Map *>(other));
    return *this;
}