From 5cd2ece3ba07ea132f1bda9ec4ab76828cc77f51 Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Mon, 2 Nov 2009 01:45:57 +0000 Subject: Don't call FakeVartree.sync() redundantly when backtracking. svn path=/main/trunk/; revision=14774 --- pym/_emerge/PackageVirtualDbapi.py | 7 +++++++ pym/_emerge/depgraph.py | 5 ++++- 2 files changed, 11 insertions(+), 1 deletion(-) (limited to 'pym') 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 72c147ee2..5c66cf581 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 -- cgit v1.2.3-1-g7c22