[CMF-checkins] CVS: CMF/CMFCore - MemberDataTool.py:1.15.8.3

Florent Guillaume fg@nuxeo.com
Fri, 14 Mar 2003 11:38:38 -0500


Update of /cvs-repository/CMF/CMFCore
In directory cvs.zope.org:/tmp/cvs-serv25338

Modified Files:
      Tag: CMF-1_3-branch
	MemberDataTool.py 
Log Message:
Merge from HEAD:
Clean temporaries at the end of the request when wrapping users,
otherwise they may provide wrong defaults later (Collector #136).


=== CMF/CMFCore/MemberDataTool.py 1.15.8.2 => 1.15.8.3 ===
--- CMF/CMFCore/MemberDataTool.py:1.15.8.2	Thu Aug  1 15:07:55 2002
+++ CMF/CMFCore/MemberDataTool.py	Fri Mar 14 11:38:38 2003
@@ -164,6 +164,7 @@
                 m = MemberData(base, id)
                 if temps is None:
                     self._v_temps = {id:m}
+                    self.REQUEST._hold(CleanupTemp(self))
                 else:
                     temps[id] = m
         else:
@@ -183,6 +184,14 @@
         self._members[id] = m
 
 Globals.InitializeClass(MemberDataTool)
+
+
+class CleanupTemp:
+    """Used to cleanup _v_temps at the end of the request."""
+    def __init__(self, tool):
+        self._tool = tool
+    def __del__(self):
+        del self._tool._v_temps
 
 
 class MemberData (SimpleItem):