[Zope-Checkins] CVS: ZODB3/ZODB - coptimizations.c:1.22

Jeremy Hylton jeremy@zope.com
Thu, 12 Dec 2002 14:02:08 -0500


Update of /cvs-repository/ZODB3/ZODB
In directory cvs.zope.org:/tmp/cvs-serv22016

Modified Files:
	coptimizations.c 
Log Message:
Add comment explaining contract of persistent_id_call().


=== ZODB3/ZODB/coptimizations.c 1.21 => 1.22 ===
--- ZODB3/ZODB/coptimizations.c:1.21	Thu Dec 12 13:52:21 2002
+++ ZODB3/ZODB/coptimizations.c	Thu Dec 12 14:02:07 2002
@@ -153,6 +153,22 @@
     return NULL;
 }
 
+/* persistent_id_call()
+
+   Returns a reference to a persistent object, appending it to the the
+   persistent_id's list of objects.  If a non-persistent object is
+   found, return None.
+
+   The returned reference can be either class info, oid pair or a
+   plain old oid.  If it is a pair, the class info is the module and
+   the name of the class.  The class info can be used to create a
+   ghost without loading the class.
+
+   For unusual objects, e.g. ZClasses, return just the oid.  An object
+   is unusual if it isn't an ExtensionClass, because that means it
+   doesn't inherit from Persistence, or if it has __getinitargs__().
+*/
+
 static PyObject *
 persistent_id_call(persistent_id *self, PyObject *args, PyObject *kwargs)
 {