[zypp-commit] r6378 - in /trunk/libzypp/zypp/solver/detail: Resolver.cc ResolverContext.cc ResolverContext.h Resolver_problems.cc
![](https://seccdn.libravatar.org/avatar/b2c8050acc12d6c8fc86d8342006391c.jpg?s=120&d=mm&r=g)
Author: schubi2
Date: Thu Aug 2 10:15:55 2007
New Revision: 6378
URL: http://svn.opensuse.org/viewcvs/zypp?rev=6378&view=rev
Log:
speedup error handling. Do not log ResolveInfo anymore. Set limit of 20
problems.
Modified:
trunk/libzypp/zypp/solver/detail/Resolver.cc
trunk/libzypp/zypp/solver/detail/ResolverContext.cc
trunk/libzypp/zypp/solver/detail/ResolverContext.h
trunk/libzypp/zypp/solver/detail/Resolver_problems.cc
Modified: trunk/libzypp/zypp/solver/detail/Resolver.cc
URL: http://svn.opensuse.org/viewcvs/zypp/trunk/libzypp/zypp/solver/detail/Resolver.cc?rev=6378&r1=6377&r2=6378&view=diff
==============================================================================
--- trunk/libzypp/zypp/solver/detail/Resolver.cc (original)
+++ trunk/libzypp/zypp/solver/detail/Resolver.cc Thu Aug 2 10:15:55 2007
@@ -1299,7 +1299,7 @@
MIL << "-----------------------------------------------------------------" << endl;
MIL << counter++ << ". failed queue:" << endl;
ResolverQueue_Ptr invalid = *iter;
- invalid->context()->spewInfo ();
+// invalid->context()->spewInfo (); No additional information needed here
MIL << *invalid->context() << endl;
MIL << "-----------------------------------------------------------------" << endl;
}
Modified: trunk/libzypp/zypp/solver/detail/ResolverContext.cc
URL: http://svn.opensuse.org/viewcvs/zypp/trunk/libzypp/zypp/solver/detail/ResolverContext.cc?rev=6378&r1=6377&r2=6378&view=diff
==============================================================================
--- trunk/libzypp/zypp/solver/detail/ResolverContext.cc (original)
+++ trunk/libzypp/zypp/solver/detail/ResolverContext.cc Thu Aug 2 10:15:55 2007
@@ -1355,7 +1355,7 @@
void
ResolverContext::foreachInfo (PoolItem_Ref item, int priority, ResolverInfoFn fn, void *data,
- const bool merge) const
+ const bool merge, const bool findImportant) const
{
ResolverInfoList info_list;
@@ -1372,6 +1372,12 @@
&& info->priority() >= priority)
{
info_list.push_back( info );
+
+ if (!merge
+ && !findImportant) {
+ // invoke our callback in order to avoid an additional run over the complete list
+ fn( info, data );
+ }
}
}
context = context->_parent;
@@ -1396,13 +1402,16 @@
}
}
- mark_important_info( info_list );
+ if (findImportant) mark_important_info( info_list );
- // Walk across the list of info objects and invoke our callback
+ if (merge
+ || findImportant) {
+ // Walk across the list of info objects and invoke our callback
- for (ResolverInfoList::iterator iter = info_list.begin(); iter != info_list.end(); ++iter) {
- if (*iter != NULL) {
- fn( *iter, data );
+ for (ResolverInfoList::iterator iter = info_list.begin(); iter != info_list.end(); ++iter) {
+ if (*iter != NULL) {
+ fn( *iter, data );
+ }
}
}
}
@@ -1479,7 +1488,7 @@
ResolverContext::spewInfo (void) const
{
_XDEBUG( "ResolverContext[" << this << "]::spewInfo" );
- foreachInfo (PoolItem_Ref(), -1, spew_info_cb, NULL);
+ foreachInfo (PoolItem_Ref(), -1, spew_info_cb, NULL, false, false);
}
//---------------------------------------------------------------------------
Modified: trunk/libzypp/zypp/solver/detail/ResolverContext.h
URL: http://svn.opensuse.org/viewcvs/zypp/trunk/libzypp/zypp/solver/detail/ResolverContext.h?rev=6378&r1=6377&r2=6378&view=diff
==============================================================================
--- trunk/libzypp/zypp/solver/detail/ResolverContext.h (original)
+++ trunk/libzypp/zypp/solver/detail/ResolverContext.h Thu Aug 2 10:15:55 2007
@@ -304,7 +304,7 @@
void addError (ResolverInfo_Ptr info, bool askUser = false);// error progress info
// iterate over report log
- void foreachInfo (PoolItem_Ref item, int priority, ResolverInfoFn fn, void *data, const bool merge=true) const;
+ void foreachInfo (PoolItem_Ref item, int priority, ResolverInfoFn fn, void *data, const bool merge=true, const bool findImportant = true) const;
ResolverInfoList getInfo (void) const;
// Context compare to identify equal branches
Modified: trunk/libzypp/zypp/solver/detail/Resolver_problems.cc
URL: http://svn.opensuse.org/viewcvs/zypp/trunk/libzypp/zypp/solver/detail/Resolver_problems.cc?rev=6378&r1=6377&r2=6378&view=diff
==============================================================================
--- trunk/libzypp/zypp/solver/detail/Resolver_problems.cc (original)
+++ trunk/libzypp/zypp/solver/detail/Resolver_problems.cc Thu Aug 2 10:15:55 2007
@@ -67,7 +67,9 @@
typedef multimap
participants (1)
-
schubi2@svn.opensuse.org