ref: refs/heads/ma-misc
commit 3e2e762c811ad5dec630aafbf56f3d4adc17f270
Author: Michael Andres
Date: Thu Oct 15 15:19:44 2009 +0200
Compute satisfied/broken for pseudoInstalled items only.
---
zypp/solver/detail/SATResolver.cc | 17 ++++++++---------
1 files 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<Package>()), // 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]));
--
To unsubscribe, e-mail: zypp-commit+unsubscribe@opensuse.org
For additional commands, e-mail: zypp-commit+help@opensuse.org