summaryrefslogtreecommitdiff
path: root/pym
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2009-11-07 01:09:57 +0000
committerZac Medico <zmedico@gentoo.org>2009-11-07 01:09:57 +0000
commitb12a4b5707b578da014e6f8d88a025c98a1530a8 (patch)
tree774de61bb733d996cae1fe864fa338eb4077c36d /pym
parentMove FakeVartree population out of the constructor by calling the sync() (diff)
downloadportage-multirepo-b12a4b5707b578da014e6f8d88a025c98a1530a8.tar.gz
portage-multirepo-b12a4b5707b578da014e6f8d88a025c98a1530a8.tar.bz2
portage-multirepo-b12a4b5707b578da014e6f8d88a025c98a1530a8.zip
Don't call FakeVartree.sync() redundantly when backtracking. (trunk r14774)
svn path=/main/branches/2.1.7/; revision=14787
Diffstat (limited to 'pym')
-rw-r--r--pym/_emerge/PackageVirtualDbapi.py7
-rw-r--r--pym/_emerge/depgraph.py5
2 files changed, 11 insertions, 1 deletions
diff --git a/pym/_emerge/PackageVirtualDbapi.py b/pym/_emerge/PackageVirtualDbapi.py
index adf26911..e557f048 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 e7407893..d2f101bd 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