Kaydet (Commit) f66cb5d0 authored tarafından Fred Drake's avatar Fred Drake

Corrected an error in the information on supporting weak references in

extension types (the docs reflected a development version of the API).

This closes SF bug #435066.
üst 9ca78ac5
......@@ -226,28 +226,26 @@ PyTypeObject PyInstance_Type = {
0,
"instance",
/* lots of stuff omitted for brevity */
/* Lots of stuff omitted for brevity... */
offsetof(PyInstanceObject, in_weakreflist) /* tp_weaklistoffset */
};
\end{verbatim}
The only further addition is that the destructor needs to call the
weak reference manager to clear any weak references and return if the
object has been resurrected. This needs to occur before any other
parts of the destruction have occurred:
weak reference manager to clear any weak references. This should be
done before any other parts of the destruction have occurred:
\begin{verbatim}
static void
instance_dealloc(PyInstanceObject *inst)
{
/* allocate tempories if needed, but do not begin
destruction here
/* Allocate tempories if needed, but do not begin
destruction just yet.
*/
if (!PyObject_ClearWeakRefs((PyObject *) inst))
return;
PyObject_ClearWeakRefs((PyObject *) inst);
/* proceed with object destuction normally */
/* Proceed with object destuction normally. */
}
\end{verbatim}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment