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:24 +0000
commit262df8c46ae1fee336bfa93f1381adf8d9387f7a (patch)
tree2d773eab5798a38e25095eb245ba0c03e414ab40
parentbf0a9ecab1d263632605a25671381a1951965d28 (diff)
downloadpaludis-262df8c46ae1fee336bfa93f1381adf8d9387f7a.tar.gz
paludis-262df8c46ae1fee336bfa93f1381adf8d9387f7a.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 1c6c73e..977d318 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;