Log message for revision 118922: back-port c118896 from 2.13 Changed: U Zope/branches/2.12/src/Products/ZCatalog/Lazy.py
-=- Modified: Zope/branches/2.12/src/Products/ZCatalog/Lazy.py =================================================================== --- Zope/branches/2.12/src/Products/ZCatalog/Lazy.py 2010-12-15 09:29:34 UTC (rev 118921) +++ Zope/branches/2.12/src/Products/ZCatalog/Lazy.py 2010-12-15 09:55:29 UTC (rev 118922) @@ -134,20 +134,16 @@ def __init__(self, func, seq, length=None): self._seq=seq + self._data={} self._func=func if length is not None: self._len=length else: self._len = len(seq) - self._marker = object() - self._data = [self._marker] * self._len def __getitem__(self,index): data=self._data - try: s=self._seq - except AttributeError: return data[index] - - value = data[index] - if value is self._marker: - value = data[index] = self._func(s[index]) + if index in data: + return data[index] + value = data[index] = self._func(self._seq[index]) return value class LazyFilter(Lazy): _______________________________________________ Zope-Checkins maillist - Zope-Checkins@zope.org https://mail.zope.org/mailman/listinfo/zope-checkins