[Zope3-checkins] CVS: ZODB4/src/zodb - serialize.py:1.3
Jeremy Hylton
jeremy@zope.com
Tue, 21 Jan 2003 14:32:00 -0500
Update of /cvs-repository/ZODB4/src/zodb
In directory cvs.zope.org:/tmp/cvs-serv19786
Modified Files:
serialize.py
Log Message:
Fix bug that caused too much data to be returned from _dump()
if an earlier call had produced a larger pickle.
=== ZODB4/src/zodb/serialize.py 1.2 => 1.3 ===
--- ZODB4/src/zodb/serialize.py:1.2 Wed Dec 25 09:12:16 2002
+++ ZODB4/src/zodb/serialize.py Tue Jan 21 14:31:58 2003
@@ -137,13 +137,19 @@
return NewObjectIterator(self._stack)
def getState(self, obj):
+ d = obj.__getstate__()
+ print "obj", repr(obj), [(k, len(v)) for k, v in d.items()]
return self._dump(getClassMetadata(obj), obj.__getstate__())
def _dump(self, classmeta, state):
+ # To reuse the existing cStringIO object, we must reset
+ # the file position to 0 and truncate the file after the
+ # new pickle is written.
self._file.reset()
self._p.clear_memo()
self._p.dump(classmeta)
self._p.dump(state)
+ self._file.truncate()
return self._file.getvalue()
class NewObjectIterator: