1.1 --- a/micropython/ast.py Sun Sep 07 02:17:05 2008 +0200
1.2 +++ b/micropython/ast.py Sun Sep 07 18:43:40 2008 +0200
1.3 @@ -639,7 +639,8 @@
1.4 self.temp_positions.remove(temp_position)
1.5
1.6 def set_frame_usage(self, node, extend):
1.7 - extend.attr = self.max_temp_position + node.unit.local_usage # NOTE: See get_code for similar code.
1.8 + ntemp = self.max_temp_position + 1
1.9 + extend.attr = ntemp + node.unit.local_usage # NOTE: See get_code for similar code.
1.10
1.11 # Code writing methods.
1.12
2.1 --- a/micropython/data.py Sun Sep 07 02:17:05 2008 +0200
2.2 +++ b/micropython/data.py Sun Sep 07 18:43:40 2008 +0200
2.3 @@ -832,16 +832,21 @@
2.4 self[name].position = i
2.5
2.6 if i is not None:
2.7 - j = i + 1
2.8 + nparams = i + 1
2.9 else:
2.10 - j = 0
2.11 + nparams = 0
2.12 +
2.13 + i = None
2.14 + for i, attr in enumerate(self.locals().values()):
2.15 + attr.position = i + nparams
2.16
2.17 - i = 0
2.18 - for i, attr in enumerate(self.locals().values()):
2.19 - attr.position = i + j
2.20 + if i is not None:
2.21 + nothers = i + 1
2.22 + else:
2.23 + nothers = 0
2.24
2.25 - self.local_usage = i + 1
2.26 - self.all_local_usage = i + j + 1
2.27 + self.local_usage = nothers
2.28 + self.all_local_usage = nparams + nothers
2.29 self.finalised = 1
2.30
2.31 def function_from_method(self):