From 4a87cc055d365ec4d9063805ebcebf7050c0d5fa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9cile=20Tonglet?= Date: Wed, 22 Feb 2012 16:16:53 +0100 Subject: [PATCH] [FIX] infinte loops in tools.graph lp bug: https://launchpad.net/bugs/932830 fixed bzr revid: cto@openerp.com-20120222151653-ucftpis7zh9kman5 --- openerp/tools/graph.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/openerp/tools/graph.py b/openerp/tools/graph.py index 9ad1f34e91f..1b039ce97c6 100755 --- a/openerp/tools/graph.py +++ b/openerp/tools/graph.py @@ -313,7 +313,8 @@ class graph(object): self.order[level] = self.order[level]+1 for sec_end in self.transitions.get(node, []): - self.init_order(sec_end, self.result[sec_end]['x']) + if node!=sec_end: + self.init_order(sec_end, self.result[sec_end]['x']) def order_heuristic(self): @@ -457,7 +458,8 @@ class graph(object): if self.transitions.get((mid_node), False): if last: self.result[mid_node]['y'] = last + len(self.transitions[mid_node])/2 + 1 - last = self.tree_order(mid_node) + if node!=mid_node: + last = self.tree_order(mid_node) else: if last: self.result[mid_node]['y'] = last + 1 @@ -473,7 +475,8 @@ class graph(object): if self.transitions.get(child, False): if last: self.result[child]['y'] = last + len(self.transitions[child])/2 + 1 - last = self.tree_order(child, last) + if node!=child: + last = self.tree_order(child, last) if last_child: last = self.result[last_child]['y']