From 3e2e762c811ad5dec630aafbf56f3d4adc17f270 Mon Sep 17 00:00:00 2001 From: Michael Andres Date: Thu, 15 Oct 2009 15:19:44 +0200 Subject: [PATCH] Compute satisfied/broken for pseudoInstalled items only. --- zypp/solver/detail/SATResolver.cc | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/zypp/solver/detail/SATResolver.cc b/zypp/solver/detail/SATResolver.cc index 8d0a2dc..433e65c 100644 --- a/zypp/solver/detail/SATResolver.cc +++ b/zypp/solver/detail/SATResolver.cc @@ -379,21 +379,21 @@ class CheckIfUpdate : public resfilter::PoolItemFilterFunctor }; -class CollectNonePackages : public resfilter::PoolItemFilterFunctor +class CollectPseudoInstalled : public resfilter::PoolItemFilterFunctor { public: Queue *solvableQueue; - CollectNonePackages( Queue *queue ) + CollectPseudoInstalled( Queue *queue ) :solvableQueue (queue) {} - // collecting none packges - + // collecting PseudoInstalled items bool operator()( PoolItem item ) { - queue_push(solvableQueue, item.satSolvable().id()); - return true; + if ( traits::isPseudoInstalled( item.satSolvable().kind() ) ) + queue_push( solvableQueue, item.satSolvable().id() ); + return true; } }; @@ -543,11 +543,10 @@ SATResolver::solving(const CapabilitySet & requires_caps, queue_init(&flags); queue_init(&solvableQueue); - CollectNonePackages collectNonePackages(&solvableQueue); + CollectPseudoInstalled collectPseudoInstalled(&solvableQueue); invokeOnEach( _pool.begin(), _pool.end(), - functor::not_c(resfilter::byKind()), // every solvable BUT packages - functor::functorRef (collectNonePackages) ); + functor::functorRef (collectPseudoInstalled) ); solver_trivial_installable(_solv, &solvableQueue, &flags ); for (int i = 0; i < solvableQueue.count; i++) { PoolItem item = _pool.find (sat::Solvable(solvableQueue.elements[i])); -- 2.7.4