aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAvatar Ciaran McCreesh <ciaran.mccreesh@googlemail.com> 2010-07-13 12:15:46 +0100
committerAvatar Ciaran McCreesh <ciaran.mccreesh@googlemail.com> 2010-07-13 12:15:46 +0100
commit78d256c6387a93aca51e3c9a4e56d0834f1408e7 (patch)
treef5dedccc4ba780a30619ba54f461b3770594da5e
parent969a4809cb89f55e343cf0accd024c11e2ac6855 (diff)
downloadpaludis-78d256c6387a93aca51e3c9a4e56d0834f1408e7.tar.gz
paludis-78d256c6387a93aca51e3c9a4e56d0834f1408e7.tar.xz
All slots for resolve !foo
Fixes: ticket:914
-rw-r--r--paludis/resolver/decider.cc9
1 files changed, 7 insertions, 2 deletions
diff --git a/paludis/resolver/decider.cc b/paludis/resolver/decider.cc
index 2ddb39d..13d65c3 100644
--- a/paludis/resolver/decider.cc
+++ b/paludis/resolver/decider.cc
@@ -1857,8 +1857,13 @@ Decider::add_target_with_reason(const PackageOrBlockDepSpec & spec, const std::t
}
else
{
- PackageDepSpec base_spec(spec.if_package() ? *spec.if_package() : spec.if_block()->blocking());
- std::tr1::shared_ptr<const Resolvents> resolvents(_get_resolvents_for(base_spec, reason));
+ std::tr1::shared_ptr<const Resolvents> resolvents;
+
+ if (spec.if_package())
+ resolvents = _get_resolvents_for(*spec.if_package(), reason);
+ else
+ resolvents = _get_resolvents_for_blocker(*spec.if_block());
+
if (resolvents->empty())
{
if (spec.if_package())