From 77a4aef3abc483d4dc1f2e26d7d665e6849a4804 Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Sat, 5 Apr 2008 10:30:43 +0000 Subject: Fix the depgraph package selection cache to update the "existing node" state of packages if they've been added to the graph since the last call. svn path=/main/trunk/; revision=9717 --- pym/_emerge/__init__.py | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'pym') diff --git a/pym/_emerge/__init__.py b/pym/_emerge/__init__.py index a93997fc2..bc8cbd205 100644 --- a/pym/_emerge/__init__.py +++ b/pym/_emerge/__init__.py @@ -2484,6 +2484,14 @@ class depgraph(object): cache_key = (root, atom, onlydeps) ret = self._highest_pkg_cache.get(cache_key) if ret is not None: + pkg, existing = ret + if pkg and not existing: + existing = self._slot_pkg_map[root].get(pkg.slot_atom) + if existing and existing == pkg: + # Update the cache to reflect that the + # package has been added to the graph. + ret = pkg, pkg + self._highest_pkg_cache[cache_key] = ret return ret ret = self._select_pkg_highest_available_imp(root, atom, onlydeps=onlydeps) self._highest_pkg_cache[cache_key] = ret -- cgit v1.2.3-1-g7c22