#5360: replace PyObject_HEAD_INIT by PyVarObject_HEAD_INIT.

This commit is contained in:
Georg Brandl 2009-02-27 17:11:23 +00:00
parent f341acd5b5
commit ec12e82952
2 changed files with 6 additions and 6 deletions

View File

@ -72,7 +72,7 @@ Python floats::
Moving on, we come to the crunch --- the type object. ::
static PyTypeObject noddy_NoddyType = {
PyObject_HEAD_INIT(NULL)
PyVarObject_HEAD_INIT(NULL, 0)
"noddy.Noddy", /* tp_name */
sizeof(noddy_NoddyObject), /* tp_basicsize */
0, /* tp_itemsize */
@ -103,11 +103,11 @@ it's common practice to not specify them explicitly unless you need them.
This is so important that we're going to pick the top of it apart still
further::
PyObject_HEAD_INIT(NULL)
PyVarObject_HEAD_INIT(NULL, 0)
This line is a bit of a wart; what we'd like to write is::
PyObject_HEAD_INIT(&PyType_Type)
PyVarObject_HEAD_INIT(&PyType_Type, 0)
as the type of a type object is "type", but this isn't strictly conforming C and
some compilers complain. Fortunately, this member will be filled in for us by
@ -1427,7 +1427,7 @@ type is defined with the following structure::
The statically-declared type object for instances is defined this way::
PyTypeObject PyInstance_Type = {
PyObject_HEAD_INIT(&PyType_Type)
PyVarObject_HEAD_INIT(&PyType_Type, 0)
0,
"module.instance",

View File

@ -169,11 +169,11 @@ described here are distributed with the Python sources in the
If your module creates a new type, you may have trouble with this line::
PyObject_HEAD_INIT(&PyType_Type)
PyVarObject_HEAD_INIT(&PyType_Type, 0)
Change it to::
PyObject_HEAD_INIT(NULL)
PyVarObject_HEAD_INIT(NULL, 0)
and add the following to the module initialization function::