aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAvatar Ciaran McCreesh <ciaran.mccreesh@googlemail.com> 2009-11-01 19:25:10 +0000
committerAvatar Ciaran McCreesh <ciaran.mccreesh@googlemail.com> 2009-11-03 15:31:15 +0000
commitee4023b1945fdefa9ebcdc81b4810896b7ee3fae (patch)
tree7af34a397da93eb9770da8fb87bfc6434d5a1d70
parentdd85b85919976455bb5f7d125163b422a2a27dbd (diff)
downloadpaludis-ee4023b1945fdefa9ebcdc81b4810896b7ee3fae.tar.gz
paludis-ee4023b1945fdefa9ebcdc81b4810896b7ee3fae.tar.xz
Fix weird resolver bug.
|| ( ( A B ) C ) where ( A B ) and C are both met, and where A is being replaced by something that also meets, would incorrectly treat ( A B ) as unmet. Fixes: gentoo#291156
-rw-r--r--paludis/query_visitor.cc2
1 files changed, 1 insertions, 1 deletions
diff --git a/paludis/query_visitor.cc b/paludis/query_visitor.cc
index 1c6c73e47..977d318ae 100644
--- a/paludis/query_visitor.cc
+++ b/paludis/query_visitor.cc
@@ -95,7 +95,7 @@ QueryVisitor::visit(const DependencySpecTree::NodeType<PackageDepSpec>::Type & n
filter::InstalledAtRoot(_imp->environment->root()))]);
if (indirect_iterator(matches->end()) != std::find_if(indirect_iterator(matches->begin()), indirect_iterator(matches->end()),
- std::tr1::bind(std::tr1::mem_fn(&DepList::replaced), _imp->dep_list, _1)))
+ std::tr1::bind(std::logical_not<bool>(), std::tr1::bind(std::tr1::mem_fn(&DepList::replaced), _imp->dep_list, _1))))
{
_imp->result = true;
return;