From 35ce9db328c0727f4c246a0b9caa7fb02652d05b Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Thu, 19 Feb 2009 19:01:26 +0000 Subject: Optimize depgraph._dep_expand() to avoid calling pordbapi.cp_all(), since it can be more efficient to call cp_list() on each category. Thanks to Marat Radchenko for the suggestion. svn path=/main/trunk/; revision=12653 --- pym/_emerge/__init__.py | 21 ++++++--------------- 1 file changed, 6 insertions(+), 15 deletions(-) (limited to 'pym/_emerge/__init__.py') diff --git a/pym/_emerge/__init__.py b/pym/_emerge/__init__.py index a5802bbe5..be50a6386 100644 --- a/pym/_emerge/__init__.py +++ b/pym/_emerge/__init__.py @@ -5274,23 +5274,14 @@ class depgraph(object): cat, atom_pn = portage.catsplit(null_cp) dbs = self._filtered_trees[root_config.root]["dbs"] - cp_set = set() + categories = set() for db, pkg_type, built, installed, db_keys in dbs: - cp_set.update(db.cp_all()) - for cp in list(cp_set): - cat, pn = portage.catsplit(cp) - if pn != atom_pn: - cp_set.discard(cp) + for cat in db.categories: + if db.cp_list("%s/%s" % (cat, atom_pn)): + categories.add(cat) + deps = [] - for cp in cp_set: - have_pkg = False - for db, pkg_type, built, installed, db_keys in dbs: - if db.cp_list(cp): - have_pkg = True - break - if not have_pkg: - continue - cat, pn = portage.catsplit(cp) + for cat in categories: deps.append(insert_category_into_atom( atom_without_category, cat)) return deps -- cgit v1.2.3-1-g7c22