]> granicus.if.org Git - python/commitdiff
#4576: fix ob_type access.
authorGeorg Brandl <georg@python.org>
Sun, 7 Dec 2008 14:09:20 +0000 (14:09 +0000)
committerGeorg Brandl <georg@python.org>
Sun, 7 Dec 2008 14:09:20 +0000 (14:09 +0000)
Doc/extending/newtypes.rst

index b0211b1b75f8e486f5e8df1e773b40c265457e98..e6b52c5c556c80cb90f2a6a002aa277f8a3afd2a 100644 (file)
@@ -265,7 +265,7 @@ allocation and deallocation.  At a minimum, we need a deallocation method::
    {
        Py_XDECREF(self->first);
        Py_XDECREF(self->last);
-       self->ob_type->tp_free((PyObject*)self);
+       Py_TYPE(self)->tp_free((PyObject*)self);
    }
 
 which is assigned to the :attr:`tp_dealloc` member::
@@ -759,7 +759,7 @@ to use it::
    Noddy_dealloc(Noddy* self)
    {
        Noddy_clear(self);
-       self->ob_type->tp_free((PyObject*)self);
+       Py_TYPE(self)->tp_free((PyObject*)self);
    }
 
 Notice the use of a temporary variable in :cfunc:`Noddy_clear`. We use the
@@ -952,7 +952,7 @@ needs to be freed here as well.  Here is an example of this function::
    newdatatype_dealloc(newdatatypeobject * obj)
    {
        free(obj->obj_UnderlyingDatatypePtr);
-       obj->ob_type->tp_free(obj);
+       Py_TYPE(obj)->tp_free(obj);
    }
 
 .. index::
@@ -995,7 +995,7 @@ done.  This can be done using the :cfunc:`PyErr_Fetch` and
 
            Py_DECREF(self->my_callback);
        }
-       obj->ob_type->tp_free((PyObject*)self);
+       Py_TYPE(obj)->tp_free((PyObject*)self);
    }