summaryrefslogtreecommitdiffstats
path: root/pym
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2008-05-02 21:09:20 +0000
committerZac Medico <zmedico@gentoo.org>2008-05-02 21:09:20 +0000
commit30517c78579612dc169937abe375aed5bab74a28 (patch)
treee5b0e07433f60766087ec654231c3fa2b92afe27 /pym
parent75689d1acf4efc1253f7ea9e12a9a2db687e67d5 (diff)
downloadportage-30517c78579612dc169937abe375aed5bab74a28.tar.gz
portage-30517c78579612dc169937abe375aed5bab74a28.tar.bz2
portage-30517c78579612dc169937abe375aed5bab74a28.zip
In depgraph.validate_blockers(), discard any "uninstall" tasks scheduled
by previous calls, since those tasks may not make sense given the current graph state. svn path=/main/trunk/; revision=10106
Diffstat (limited to 'pym')
-rw-r--r--pym/_emerge/__init__.py8
1 files changed, 8 insertions, 0 deletions
diff --git a/pym/_emerge/__init__.py b/pym/_emerge/__init__.py
index b306f1085..0160f6d02 100644
--- a/pym/_emerge/__init__.py
+++ b/pym/_emerge/__init__.py
@@ -3225,6 +3225,14 @@ class depgraph(object):
blocker_cache.flush()
del blocker_cache
+ # Discard any "uninstall" tasks scheduled by previous calls
+ # to this method, since those tasks may not make sense given
+ # the current graph state.
+ previous_uninstall_tasks = self._blocker_uninstalls.leaf_nodes()
+ if previous_uninstall_tasks:
+ self._blocker_uninstalls = digraph()
+ self.digraph.difference_update(previous_uninstall_tasks)
+
for blocker in self._blocker_parents.leaf_nodes():
self.spinner.update()
root_config = self.roots[blocker.root]