fix update() of nodes with multiple input

This commit is contained in:
duguxy 2015-08-20 19:18:28 +08:00
parent 1036edf618
commit 88091a6f93

View File

@ -381,22 +381,22 @@ class Flowchart(Node):
terms = set(startNode.outputs().values()) terms = set(startNode.outputs().values())
#print "======= Updating", startNode #print "======= Updating", startNode
#print "Order:", order # print("Order:", order)
for node in order[1:]: for node in order[1:]:
#print "Processing node", node # print("Processing node", node)
update = False
for term in list(node.inputs().values()): for term in list(node.inputs().values()):
#print " checking terminal", term # print(" checking terminal", term)
deps = list(term.connections().keys()) deps = list(term.connections().keys())
update = False
for d in deps: for d in deps:
if d in terms: if d in terms:
#print " ..input", d, "changed" # print(" ..input", d, "changed")
update = True update |= True
term.inputChanged(d, process=False) term.inputChanged(d, process=False)
if update: if update:
#print " processing.." # print(" processing..")
node.update() node.update()
terms |= set(node.outputs().values()) terms |= set(node.outputs().values())
finally: finally:
self.processing = False self.processing = False