[Zope3-checkins] CVS: Zope3/src/zodb - serialize.py:1.23
Jim Fulton
jim at zope.com
Sun Sep 21 13:30:00 EDT 2003
Update of /cvs-repository/Zope3/src/zodb
In directory cvs.zope.org:/tmp/cvs-serv11558/src/zodb
Modified Files:
serialize.py
Log Message:
When getting class meta data, use type() rather than .__class__ so as
not to be fooled persistent proxies.
Done by Jeremy on the parentgeddon-branch branch:
Change conflict-resolution to no longer use a proxy. This is
necessary to support persistent proxies.
=== Zope3/src/zodb/serialize.py 1.22 => 1.23 ===
--- Zope3/src/zodb/serialize.py:1.22 Thu Jun 19 17:41:10 2003
+++ Zope3/src/zodb/serialize.py Sun Sep 21 13:29:59 2003
@@ -79,7 +79,7 @@
newargs = getattr(obj, "__getnewargs__", None)
if newargs is not None:
newargs = newargs()
- return obj.__class__, newargs
+ return type(obj), newargs
class RootJar:
def newObjectId(self):
@@ -164,6 +164,14 @@
def getState(self, obj):
data = self._dump(getClassMetadata(obj), obj.__getstate__())
+ refs = findrefs(data)
+ return data, refs
+
+ def getStateFromResolved(self, ghost, state):
+ # This method is only used in the ResolvedObjectWriter subclass,
+ # but it is defined here to keep all the details of the data
+ # record format internal to this module.
+ data = self._dump(getClassMetadata(ghost), state)
refs = findrefs(data)
return data, refs
More information about the Zope3-Checkins
mailing list