Changeset 391 for python/trunk/Doc/c-api/refcounting.rst
- Timestamp:
- Mar 19, 2014, 11:31:01 PM (11 years ago)
- Location:
- python/trunk
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
python/trunk
-
Property svn:mergeinfo
set to
/python/vendor/Python-2.7.6 merged eligible /python/vendor/current merged eligible
-
Property svn:mergeinfo
set to
-
python/trunk/Doc/c-api/refcounting.rst
r2 r391 12 12 13 13 14 .. c function:: void Py_INCREF(PyObject *o)14 .. c:function:: void Py_INCREF(PyObject *o) 15 15 16 16 Increment the reference count for object *o*. The object must not be *NULL*; if 17 you aren't sure that it isn't *NULL*, use :c func:`Py_XINCREF`.17 you aren't sure that it isn't *NULL*, use :c:func:`Py_XINCREF`. 18 18 19 19 20 .. c function:: void Py_XINCREF(PyObject *o)20 .. c:function:: void Py_XINCREF(PyObject *o) 21 21 22 22 Increment the reference count for object *o*. The object may be *NULL*, in … … 24 24 25 25 26 .. c function:: void Py_DECREF(PyObject *o)26 .. c:function:: void Py_DECREF(PyObject *o) 27 27 28 28 Decrement the reference count for object *o*. The object must not be *NULL*; if 29 you aren't sure that it isn't *NULL*, use :c func:`Py_XDECREF`. If the reference29 you aren't sure that it isn't *NULL*, use :c:func:`Py_XDECREF`. If the reference 30 30 count reaches zero, the object's type's deallocation function (which must not be 31 31 *NULL*) is invoked. … … 37 37 exceptions in such code are not propagated, the executed code has free access to 38 38 all Python global variables. This means that any object that is reachable from 39 a global variable should be in a consistent state before :c func:`Py_DECREF` is39 a global variable should be in a consistent state before :c:func:`Py_DECREF` is 40 40 invoked. For example, code to delete an object from a list should copy a 41 41 reference to the deleted object in a temporary variable, update the list data 42 structure, and then call :c func:`Py_DECREF` for the temporary variable.42 structure, and then call :c:func:`Py_DECREF` for the temporary variable. 43 43 44 44 45 .. c function:: void Py_XDECREF(PyObject *o)45 .. c:function:: void Py_XDECREF(PyObject *o) 46 46 47 47 Decrement the reference count for object *o*. The object may be *NULL*, in 48 48 which case the macro has no effect; otherwise the effect is the same as for 49 :c func:`Py_DECREF`, and the same warning applies.49 :c:func:`Py_DECREF`, and the same warning applies. 50 50 51 51 52 .. c function:: void Py_CLEAR(PyObject *o)52 .. c:function:: void Py_CLEAR(PyObject *o) 53 53 54 54 Decrement the reference count for object *o*. The object may be *NULL*, in 55 55 which case the macro has no effect; otherwise the effect is the same as for 56 :c func:`Py_DECREF`, except that the argument is also set to *NULL*. The warning57 for :c func:`Py_DECREF` does not apply with respect to the object passed because56 :c:func:`Py_DECREF`, except that the argument is also set to *NULL*. The warning 57 for :c:func:`Py_DECREF` does not apply with respect to the object passed because 58 58 the macro carefully uses a temporary variable and sets the argument to *NULL* 59 59 before decrementing its reference count. … … 66 66 The following functions are for runtime dynamic embedding of Python: 67 67 ``Py_IncRef(PyObject *o)``, ``Py_DecRef(PyObject *o)``. They are 68 simply exported function versions of :c func:`Py_XINCREF` and69 :c func:`Py_XDECREF`, respectively.68 simply exported function versions of :c:func:`Py_XINCREF` and 69 :c:func:`Py_XDECREF`, respectively. 70 70 71 71 The following functions or macros are only for use within the interpreter core: 72 :c func:`_Py_Dealloc`, :cfunc:`_Py_ForgetReference`, :cfunc:`_Py_NewReference`,73 as well as the global variable :c data:`_Py_RefTotal`.72 :c:func:`_Py_Dealloc`, :c:func:`_Py_ForgetReference`, :c:func:`_Py_NewReference`, 73 as well as the global variable :c:data:`_Py_RefTotal`. 74 74
Note:
See TracChangeset
for help on using the changeset viewer.