Lines 1010-1015
Link Here
|
1010 |
self.args_keys = [] |
1010 |
self.args_keys = [] |
1011 |
self.blocker_digraph = digraph() |
1011 |
self.blocker_digraph = digraph() |
1012 |
self.blocker_parents = {} |
1012 |
self.blocker_parents = {} |
|
|
1013 |
self._slot_collision_info = [] |
1013 |
self._altlist_cache = {} |
1014 |
self._altlist_cache = {} |
1014 |
self._pprovided_args = [] |
1015 |
self._pprovided_args = [] |
1015 |
|
1016 |
|
Lines 1176-1191
Link Here
|
1176 |
priority=priority) |
1177 |
priority=priority) |
1177 |
return 1 |
1178 |
return 1 |
1178 |
else: |
1179 |
else: |
|
|
1180 |
# A slot collision has occurred. Sometimes this coincides |
1181 |
# with unresolvable blockers, so the slot collision will be |
1182 |
# shown later if there are no unresolvable blockers. |
1179 |
e_parents = self._parent_child_digraph.parent_nodes( |
1183 |
e_parents = self._parent_child_digraph.parent_nodes( |
1180 |
existing_node) |
1184 |
existing_node) |
1181 |
myparents = [] |
1185 |
myparents = [] |
1182 |
if myparent: |
1186 |
if myparent: |
1183 |
myparents.append(myparent) |
1187 |
myparents.append(myparent) |
1184 |
self._show_slot_collision_notice( |
1188 |
self._slot_collision_info.append( |
1185 |
((jbigkey, myparents), |
1189 |
((jbigkey, myparents), (existing_node, e_parents))) |
1186 |
(existing_node, e_parents))) |
|
|
1187 |
return 0 |
1188 |
|
1190 |
|
|
|
1191 |
# Now add this node to the graph so that self.display() |
1192 |
# can work with it show use flags and --tree output. |
1193 |
self.useFlags[myroot][mykey] = myuse |
1194 |
self._parent_child_digraph.add(jbigkey, myparent) |
1195 |
if rev_dep and myparent: |
1196 |
self.digraph.add(myparent, jbigkey, |
1197 |
priority=priority) |
1198 |
else: |
1199 |
self.digraph.add(jbigkey, myparent, |
1200 |
priority=priority) |
1201 |
# The slot collision has rendered the graph invalid, so |
1202 |
# there's no need to process dependencies of this node. |
1203 |
return 1 |
1204 |
|
1189 |
self._slot_node_map[myroot][slot_atom] = jbigkey |
1205 |
self._slot_node_map[myroot][slot_atom] = jbigkey |
1190 |
self.pkg_node_map[myroot][mykey] = jbigkey |
1206 |
self.pkg_node_map[myroot][mykey] = jbigkey |
1191 |
self.useFlags[myroot][mykey] = myuse |
1207 |
self.useFlags[myroot][mykey] = myuse |
Lines 1905-1910
Link Here
|
1905 |
# Validate blockers that depend on merge order. |
1921 |
# Validate blockers that depend on merge order. |
1906 |
if not self.blocker_digraph.empty(): |
1922 |
if not self.blocker_digraph.empty(): |
1907 |
self.altlist() |
1923 |
self.altlist() |
|
|
1924 |
if self._slot_collision_info: |
1925 |
# The user is only notified of a slot collision if there are no |
1926 |
# unresolvable blocks. |
1927 |
for x in self.altlist(): |
1928 |
if x[0] == "blocks": |
1929 |
return True |
1930 |
self._show_slot_collision_notice(self._slot_collision_info[0]) |
1931 |
return False |
1908 |
return True |
1932 |
return True |
1909 |
|
1933 |
|
1910 |
def altlist(self, reversed=False): |
1934 |
def altlist(self, reversed=False): |