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

Reply via email to