1.1 --- a/micropython/data.py Sun Oct 27 02:39:45 2013 +0200
1.2 +++ b/micropython/data.py Sun Oct 27 02:55:51 2013 +0200
1.3 @@ -574,29 +574,15 @@
1.4 self.users = None
1.5
1.6 def _get_defining_users(self):
1.7 -
1.8 - # NOTE: Re-evaluation may be necessary in places like loops where more
1.9 - # NOTE: branch information may be added.
1.10 -
1.11 if self.users is None:
1.12 users = set()
1.13 - visited = set()
1.14 for node in self.nodes:
1.15 - self._get_defining_users_for_node(node, visited, users)
1.16 + for user in node._attrdefs or [node]:
1.17 + if user._values and user._values.has_key(self.name):
1.18 + users.add(user)
1.19 self.users = users
1.20 return self.users
1.21
1.22 - def _get_defining_users_for_node(self, node, visited, users):
1.23 - if node in visited:
1.24 - return
1.25 - visited.add(node)
1.26 - if not node._attrrevbranches:
1.27 - if node._values and node._values.has_key(self.name):
1.28 - users.add(node)
1.29 - return
1.30 - for n in node._attrrevbranches:
1.31 - self._get_defining_users_for_node(n, visited, users)
1.32 -
1.33 def get_assignments(self):
1.34 return len(self._get_defining_users())
1.35