1 |
commit: 4d031fd366f2ee135145181d449c5047badbc7e5 |
2 |
Author: Zac Medico <zmedico <AT> gentoo <DOT> org> |
3 |
AuthorDate: Fri May 31 23:24:32 2013 +0000 |
4 |
Commit: Zac Medico <zmedico <AT> gentoo <DOT> org> |
5 |
CommitDate: Fri May 31 23:24:32 2013 +0000 |
6 |
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/portage.git;a=commit;h=4d031fd3 |
7 |
|
8 |
depgraph: tuple display list, avoid copies |
9 |
|
10 |
TODO: Optimize _show_merge_list to use reference comparison more |
11 |
instead of == comparison. |
12 |
|
13 |
--- |
14 |
pym/_emerge/depgraph.py | 19 +++++++++++++------ |
15 |
1 file changed, 13 insertions(+), 6 deletions(-) |
16 |
|
17 |
diff --git a/pym/_emerge/depgraph.py b/pym/_emerge/depgraph.py |
18 |
index 7929a78..9c0a966 100644 |
19 |
--- a/pym/_emerge/depgraph.py |
20 |
+++ b/pym/_emerge/depgraph.py |
21 |
@@ -5704,9 +5704,13 @@ class depgraph(object): |
22 |
except self._serialize_tasks_retry: |
23 |
pass |
24 |
|
25 |
- retlist = self._dynamic_config._serialized_tasks_cache[:] |
26 |
+ retlist = self._dynamic_config._serialized_tasks_cache |
27 |
if reversed: |
28 |
+ # TODO: deprecate the "reversed" parameter (builtin name collision) |
29 |
+ retlist = list(retlist) |
30 |
retlist.reverse() |
31 |
+ retlist = tuple(retlist) |
32 |
+ |
33 |
return retlist |
34 |
|
35 |
def _implicit_libc_deps(self, mergelist, graph): |
36 |
@@ -6575,10 +6579,12 @@ class depgraph(object): |
37 |
for blocker in unsolvable_blockers: |
38 |
retlist.append(blocker) |
39 |
|
40 |
+ retlist = tuple(retlist) |
41 |
+ |
42 |
if unsolvable_blockers and \ |
43 |
not self._accept_blocker_conflicts(): |
44 |
self._dynamic_config._unsatisfied_blockers_for_display = unsolvable_blockers |
45 |
- self._dynamic_config._serialized_tasks_cache = retlist[:] |
46 |
+ self._dynamic_config._serialized_tasks_cache = retlist |
47 |
self._dynamic_config._scheduler_graph = scheduler_graph |
48 |
# Blockers don't trigger the _skip_restart flag, since |
49 |
# backtracking may solve blockers when it solves slot |
50 |
@@ -6587,7 +6593,7 @@ class depgraph(object): |
51 |
|
52 |
if self._dynamic_config._slot_collision_info and \ |
53 |
not self._accept_blocker_conflicts(): |
54 |
- self._dynamic_config._serialized_tasks_cache = retlist[:] |
55 |
+ self._dynamic_config._serialized_tasks_cache = retlist |
56 |
self._dynamic_config._scheduler_graph = scheduler_graph |
57 |
raise self._unknown_internal_error() |
58 |
|
59 |
@@ -6641,12 +6647,13 @@ class depgraph(object): |
60 |
def _show_merge_list(self): |
61 |
if self._dynamic_config._serialized_tasks_cache is not None and \ |
62 |
not (self._dynamic_config._displayed_list is not None and \ |
63 |
- (self._dynamic_config._displayed_list == self._dynamic_config._serialized_tasks_cache or \ |
64 |
+ (self._dynamic_config._displayed_list is self._dynamic_config._serialized_tasks_cache or \ |
65 |
+ self._dynamic_config._displayed_list == self._dynamic_config._serialized_tasks_cache or \ |
66 |
self._dynamic_config._displayed_list == \ |
67 |
list(reversed(self._dynamic_config._serialized_tasks_cache)))): |
68 |
- display_list = self._dynamic_config._serialized_tasks_cache[:] |
69 |
+ display_list = self._dynamic_config._serialized_tasks_cache |
70 |
if "--tree" in self._frozen_config.myopts: |
71 |
- display_list.reverse() |
72 |
+ display_list = tuple(reversed(display_list)) |
73 |
self.display(display_list) |
74 |
|
75 |
def _show_unsatisfied_blockers(self, blockers): |