diff options
author | Zac Medico <zmedico@gentoo.org> | 2008-05-02 21:09:20 +0000 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2008-05-02 21:09:20 +0000 |
commit | 30517c78579612dc169937abe375aed5bab74a28 (patch) | |
tree | e5b0e07433f60766087ec654231c3fa2b92afe27 | |
parent | 75689d1acf4efc1253f7ea9e12a9a2db687e67d5 (diff) | |
download | portage-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
-rw-r--r-- | pym/_emerge/__init__.py | 8 |
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] |