From: Zac Medico Date: Sat, 5 Apr 2008 10:30:43 +0000 (-0000) Subject: Fix the depgraph package selection cache to update the "existing node" X-Git-Tag: v2.2_pre6~247 X-Git-Url: http://git.tremily.us/gitweb.cgi?a=commitdiff_plain;h=77a4aef3abc483d4dc1f2e26d7d665e6849a4804;p=portage.git 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 --- 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