diff options
author | Jeroen Ruigrok van der Werven <asmodai@in-nomine.org> | 2009-04-25 18:53:48 (GMT) |
---|---|---|
committer | Jeroen Ruigrok van der Werven <asmodai@in-nomine.org> | 2009-04-25 18:53:48 (GMT) |
commit | 28c81e0bb57503ee9b8c28efd537e99147420662 (patch) | |
tree | b261357537ac8bfedb893659926f20f281338c07 /Doc | |
parent | 2391918f3e529770b4433c8fb58d3c0849f78072 (diff) | |
download | cpython-28c81e0bb57503ee9b8c28efd537e99147420662.zip cpython-28c81e0bb57503ee9b8c28efd537e99147420662.tar.gz cpython-28c81e0bb57503ee9b8c28efd537e99147420662.tar.bz2 |
Reformat prior to editing.
Diffstat (limited to 'Doc')
-rw-r--r-- | Doc/c-api/allocation.rst | 88 |
1 files changed, 47 insertions, 41 deletions
diff --git a/Doc/c-api/allocation.rst b/Doc/c-api/allocation.rst index a4df93f..dc9f5a4 100644 --- a/Doc/c-api/allocation.rst +++ b/Doc/c-api/allocation.rst @@ -21,10 +21,11 @@ Allocating Objects on the Heap .. cfunction:: PyObject* PyObject_Init(PyObject *op, PyTypeObject *type) - Initialize a newly-allocated object *op* with its type and initial reference. - Returns the initialized object. If *type* indicates that the object - participates in the cyclic garbage detector, it is added to the detector's set - of observed objects. Other fields of the object are not affected. + Initialize a newly-allocated object *op* with its type and initial + reference. Returns the initialized object. If *type* indicates that the + object participates in the cyclic garbage detector, it is added to the + detector's set of observed objects. Other fields of the object are not + affected. .. cfunction:: PyVarObject* PyObject_InitVar(PyVarObject *op, PyTypeObject *type, Py_ssize_t size) @@ -35,74 +36,79 @@ Allocating Objects on the Heap .. cfunction:: TYPE* PyObject_New(TYPE, PyTypeObject *type) - Allocate a new Python object using the C structure type *TYPE* and the Python - type object *type*. Fields not defined by the Python object header are not - initialized; the object's reference count will be one. The size of the memory - allocation is determined from the :attr:`tp_basicsize` field of the type object. + Allocate a new Python object using the C structure type *TYPE* and the + Python type object *type*. Fields not defined by the Python object header + are not initialized; the object's reference count will be one. The size of + the memory allocation is determined from the :attr:`tp_basicsize` field of + the type object. .. cfunction:: TYPE* PyObject_NewVar(TYPE, PyTypeObject *type, Py_ssize_t size) - Allocate a new Python object using the C structure type *TYPE* and the Python - type object *type*. Fields not defined by the Python object header are not - initialized. The allocated memory allows for the *TYPE* structure plus *size* - fields of the size given by the :attr:`tp_itemsize` field of *type*. This is - useful for implementing objects like tuples, which are able to determine their - size at construction time. Embedding the array of fields into the same - allocation decreases the number of allocations, improving the memory management - efficiency. + Allocate a new Python object using the C structure type *TYPE* and the + Python type object *type*. Fields not defined by the Python object header + are not initialized. The allocated memory allows for the *TYPE* structure + plus *size* fields of the size given by the :attr:`tp_itemsize` field of + *type*. This is useful for implementing objects like tuples, which are + able to determine their size at construction time. Embedding the array of + fields into the same allocation decreases the number of allocations, + improving the memory management efficiency. .. cfunction:: void PyObject_Del(PyObject *op) Releases memory allocated to an object using :cfunc:`PyObject_New` or - :cfunc:`PyObject_NewVar`. This is normally called from the :attr:`tp_dealloc` - handler specified in the object's type. The fields of the object should not be - accessed after this call as the memory is no longer a valid Python object. + :cfunc:`PyObject_NewVar`. This is normally called from the + :attr:`tp_dealloc` handler specified in the object's type. The fields of + the object should not be accessed after this call as the memory is no + longer a valid Python object. .. cfunction:: PyObject* Py_InitModule(char *name, PyMethodDef *methods) - Create a new module object based on a name and table of functions, returning the - new module object. + Create a new module object based on a name and table of functions, + returning the new module object. .. versionchanged:: 2.3 - Older versions of Python did not support *NULL* as the value for the *methods* - argument. + Older versions of Python did not support *NULL* as the value for the + *methods* argument. .. cfunction:: PyObject* Py_InitModule3(char *name, PyMethodDef *methods, char *doc) - Create a new module object based on a name and table of functions, returning the - new module object. If *doc* is non-*NULL*, it will be used to define the - docstring for the module. + Create a new module object based on a name and table of functions, + returning the new module object. If *doc* is non-*NULL*, it will be used + to define the docstring for the module. .. versionchanged:: 2.3 - Older versions of Python did not support *NULL* as the value for the *methods* - argument. + Older versions of Python did not support *NULL* as the value for the + *methods* argument. .. cfunction:: PyObject* Py_InitModule4(char *name, PyMethodDef *methods, char *doc, PyObject *self, int apiver) - Create a new module object based on a name and table of functions, returning the - new module object. If *doc* is non-*NULL*, it will be used to define the - docstring for the module. If *self* is non-*NULL*, it will passed to the - functions of the module as their (otherwise *NULL*) first parameter. (This was - added as an experimental feature, and there are no known uses in the current - version of Python.) For *apiver*, the only value which should be passed is - defined by the constant :const:`PYTHON_API_VERSION`. + Create a new module object based on a name and table of functions, + returning the new module object. If *doc* is non-*NULL*, it will be used + to define the docstring for the module. If *self* is non-*NULL*, it will + passed to the functions of the module as their (otherwise *NULL*) first + parameter. (This was added as an experimental feature, and there are no + known uses in the current version of Python.) For *apiver*, the only value + which should be passed is defined by the constant + :const:`PYTHON_API_VERSION`. .. note:: - Most uses of this function should probably be using the :cfunc:`Py_InitModule3` - instead; only use this if you are sure you need it. + Most uses of this function should probably be using the + :cfunc:`Py_InitModule3` instead; only use this if you are sure you need + it. .. versionchanged:: 2.3 - Older versions of Python did not support *NULL* as the value for the *methods* - argument. + Older versions of Python did not support *NULL* as the value for the + *methods* argument. .. cvar:: PyObject _Py_NoneStruct - Object which is visible in Python as ``None``. This should only be accessed - using the ``Py_None`` macro, which evaluates to a pointer to this object. + Object which is visible in Python as ``None``. This should only be + accessed using the ``Py_None`` macro, which evaluates to a pointer to this + object. |