1 |
Since the _solve_non_slot_operator_slot_conflicts method can |
2 |
remove packages from the graph, it's possible that some of the |
3 |
state changes made by previous _validate_blockers calls are |
4 |
no longer valid. Therefore, revert state when appropriate. |
5 |
--- |
6 |
pym/_emerge/depgraph.py | 6 ++++++ |
7 |
1 file changed, 6 insertions(+) |
8 |
|
9 |
diff --git a/pym/_emerge/depgraph.py b/pym/_emerge/depgraph.py |
10 |
index 8a614c4..3232816 100644 |
11 |
--- a/pym/_emerge/depgraph.py |
12 |
+++ b/pym/_emerge/depgraph.py |
13 |
@@ -6901,6 +6901,12 @@ class depgraph(object): |
14 |
self._dynamic_config._blocker_uninstalls = digraph() |
15 |
self._dynamic_config.digraph.difference_update(previous_uninstall_tasks) |
16 |
|
17 |
+ # Revert state from previous calls. |
18 |
+ self._dynamic_config._blocker_parents.update( |
19 |
+ self._dynamic_config._irrelevant_blockers) |
20 |
+ self._dynamic_config._irrelevant_blockers.clear() |
21 |
+ self._dynamic_config._unsolvable_blockers.clear() |
22 |
+ |
23 |
for blocker in self._dynamic_config._blocker_parents.leaf_nodes(): |
24 |
self._spinner_update() |
25 |
root_config = self._frozen_config.roots[blocker.root] |
26 |
-- |
27 |
2.10.2 |