From: Stefan Behnel Date: Wed, 23 Apr 2008 04:28:02 +0000 (+0200) Subject: fixed end marker in control flow engine X-Git-Tag: 0.9.6.14~20^2~18 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=aa420b732f5c3e744be050590def6e820d043de3;p=cython.git fixed end marker in control flow engine --- diff --git a/Cython/Compiler/ControlFlow.py b/Cython/Compiler/ControlFlow.py index 16fc65d6..e433f7d0 100644 --- a/Cython/Compiler/ControlFlow.py +++ b/Cython/Compiler/ControlFlow.py @@ -1,4 +1,4 @@ -import bisect +import bisect, sys # This module keeps track of arbitrary "states" at any point of the code. # A state is considered known if every path to the given point agrees on @@ -13,6 +13,8 @@ import bisect # redesigned. It doesn't take return, raise, continue, or break into # account. +_END_POS = ((unichr(sys.maxunicode)*10),()) + class ControlFlow: def __init__(self, start_pos, incoming, parent): @@ -22,7 +24,7 @@ class ControlFlow: parent = incoming.parent self.parent = parent self.tip = {} - self.end_pos = ((),) + self.end_pos = _END_POS def start_branch(self, pos): self.end_pos = pos @@ -40,10 +42,10 @@ class ControlFlow: self.parent.end_pos = pos return LinearControlFlow(pos, self.parent) - def get_state(self, item, pos=((),())): + def get_state(self, item, pos=_END_POS): return self.get_pos_state(item, pos)[1] - def get_pos_state(self, item, pos=((),())): + def get_pos_state(self, item, pos=_END_POS): # do some caching if pos > self.end_pos: try: