1.1 --- a/micropython/table.py Fri Oct 21 00:59:47 2011 +0200
1.2 +++ b/micropython/table.py Fri Oct 21 01:00:39 2011 +0200
1.3 @@ -213,6 +213,8 @@
1.4 self.names = []
1.5 self.displaced_list = None
1.6 self.raw = None
1.7 + self.all_cache = {}
1.8 + self.any_cache = {}
1.9
1.10 def access(self, objname, attrname):
1.11
1.12 @@ -426,7 +428,10 @@
1.13 returned.
1.14 """
1.15
1.16 - return self._objects_plus_status(names, self.all_possible_objects)
1.17 + names = tuple(names)
1.18 + if not self.all_cache.has_key(names):
1.19 + self.all_cache[names] = self._objects_plus_status(names, self.all_possible_objects)
1.20 + return self.all_cache[names]
1.21
1.22 def any_possible_objects_plus_status(self, names):
1.23
1.24 @@ -437,7 +442,10 @@
1.25 returned.
1.26 """
1.27
1.28 - return self._objects_plus_status(names, self.any_possible_objects)
1.29 + names = tuple(names)
1.30 + if not self.any_cache.has_key(names):
1.31 + self.any_cache[names] = self._objects_plus_status(names, self.any_possible_objects)
1.32 + return self.any_cache[names]
1.33
1.34 class ParameterTable(Table):
1.35