diff options
author | Zac Medico <zmedico@gentoo.org> | 2009-11-07 01:09:57 +0000 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2009-11-07 01:09:57 +0000 |
commit | b12a4b5707b578da014e6f8d88a025c98a1530a8 (patch) | |
tree | 774de61bb733d996cae1fe864fa338eb4077c36d | |
parent | 964a5a7c2b9f07c7a54a25a8652f8fcedeab4136 (diff) | |
download | portage-b12a4b5707b578da014e6f8d88a025c98a1530a8.tar.gz portage-b12a4b5707b578da014e6f8d88a025c98a1530a8.tar.bz2 portage-b12a4b5707b578da014e6f8d88a025c98a1530a8.zip |
Don't call FakeVartree.sync() redundantly when backtracking. (trunk r14774)
svn path=/main/branches/2.1.7/; revision=14787
-rw-r--r-- | pym/_emerge/PackageVirtualDbapi.py | 7 | ||||
-rw-r--r-- | pym/_emerge/depgraph.py | 5 |
2 files changed, 11 insertions, 1 deletions
diff --git a/pym/_emerge/PackageVirtualDbapi.py b/pym/_emerge/PackageVirtualDbapi.py index adf269116..e557f0489 100644 --- a/pym/_emerge/PackageVirtualDbapi.py +++ b/pym/_emerge/PackageVirtualDbapi.py @@ -2,6 +2,7 @@ # Distributed under the terms of the GNU General Public License v2 # $Id$ +import sys import portage class PackageVirtualDbapi(portage.dbapi): @@ -37,6 +38,12 @@ class PackageVirtualDbapi(portage.dbapi): obj._cpv_map = self._cpv_map.copy() return obj + def __bool__(self): + return bool(self._cpv_map) + + if sys.hexversion < 0x3000000: + __nonzero__ = __bool__ + def __iter__(self): return iter(self._cpv_map.values()) diff --git a/pym/_emerge/depgraph.py b/pym/_emerge/depgraph.py index e7407893f..d2f101bd6 100644 --- a/pym/_emerge/depgraph.py +++ b/pym/_emerge/depgraph.py @@ -270,7 +270,10 @@ class depgraph(object): "--buildpkgonly" not in self._frozen_config.myopts fake_vartree = self._frozen_config.trees[myroot]["vartree"] - fake_vartree.sync() + if not fake_vartree.dbapi: + # This needs to be called for the first depgraph, but not for + # backtracking depgraphs that share the same frozen_config. + fake_vartree.sync() if preload_installed_pkgs: vardb = fake_vartree.dbapi |