55# for finding and sorting of module nodes.
66#
77# COPYRIGHT: Copyright (C) 2021-2023 Kamil Deć github.com/deckamil
8- # DATE: 23 JUN 2023
8+ # DATE: 24 JUN 2023
99#
1010# LICENSE:
1111# This file is part of Mod Code Generator (MCG).
@@ -248,10 +248,8 @@ def sort_nodes(self):
248248 self .sorted_node_list .append (dependency [0 ])
249249 # remove dependency sublist from dependency list
250250 self .dependency_list .remove (dependency )
251- # get output link
252- output_link = dependency [0 ].output_data_list [0 ]
253- # get output data name
254- output_data_name = output_link [Node .DATA_NAME_INDEX ]
251+ # get output data list
252+ output_data_list = dependency [0 ].output_data_list
255253 # recalculate number of nodes to sort, i.e. length of dependency list
256254 dependency_list_length = len (self .dependency_list )
257255
@@ -267,15 +265,18 @@ def sort_nodes(self):
267265 for k in range (index , len (dependency )):
268266 # if given node consumes local data elements, which comes from node, which
269267 # was appended above to sorted node list
270- if output_data_name == dependency [index ]:
271- # remove local data element from dependency sublist
272- dependency .remove (dependency [index ])
273- # decrement index for next iteration, as one dependence was removed
274- # therefore all next dependencies in dependency sublist were pushed by
275- # one position towards beginning of the sublist, e.g. [...,A,B,C] -> [...,B,C];
276- # A was removed and now B is under previous position of A so at next
277- # iteration the same index need to be checked to examine B;
278- index = index - 1
268+ for output_link in output_data_list :
269+ if output_link [Node .DATA_NAME_INDEX ] == dependency [index ]:
270+ # remove local data element from dependency sublist
271+ dependency .remove (dependency [index ])
272+ # decrement index for next iteration, as one dependence was removed
273+ # therefore all next dependencies in dependency sublist were pushed by
274+ # one position towards beginning of the sublist, e.g. [...,A,B,C] -> [...,B,C];
275+ # A was removed and now B is under previous position of A so at next
276+ # iteration the same index need to be checked to examine B;
277+ index = index - 1
278+ # exit "for output_link in" loop
279+ break
279280 index = index + 1
280281
281282 # exit "for i in range" loop
@@ -336,7 +337,7 @@ def sort_input_data_list(self):
336337 # record info
337338 Logger .save_in_log_file ("ModuleSorter" , "Have sorted " + str (sorted_node ) + " node" ,
338339 False )
339- # exit "for input_data in" loop
340+ # exit "for input_link in" loop
340341 break
341342
342343 # Description:
0 commit comments