summaryrefslogtreecommitdiffstats
path: root/Doc
diff options
context:
space:
mode:
authorJeroen Ruigrok van der Werven <asmodai@in-nomine.org>2009-04-25 18:53:48 (GMT)
committerJeroen Ruigrok van der Werven <asmodai@in-nomine.org>2009-04-25 18:53:48 (GMT)
commit28c81e0bb57503ee9b8c28efd537e99147420662 (patch)
treeb261357537ac8bfedb893659926f20f281338c07 /Doc
parent2391918f3e529770b4433c8fb58d3c0849f78072 (diff)
downloadcpython-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.rst88
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.