Two new public API functions, Py_IncRef and Py_DecRef. Useful for
dynamic embedders of Python.
This commit is contained in:
parent
1a9d32b8d4
commit
1328b52c6f
|
@ -42,6 +42,11 @@ of Python objects.
|
|||
applies.
|
||||
\end{cfuncdesc}
|
||||
|
||||
The following functions are for runtime dynamic embedding of Python:
|
||||
\cfunction{Py_IncRef(PyObject *o)}, \cfunction{Py_DecRef(PyObject *o)}.
|
||||
They are simply exported function versions of \cfunction{Py_XINCREF()} and
|
||||
\cfunction{Py_XDECREF()}, respectively.
|
||||
|
||||
The following functions or macros are only for use within the
|
||||
interpreter core: \cfunction{_Py_Dealloc()},
|
||||
\cfunction{_Py_ForgetReference()}, \cfunction{_Py_NewReference()}, as
|
||||
|
|
|
@ -624,6 +624,13 @@ PyAPI_FUNC(void) _Py_AddToAllObjects(PyObject *, int force);
|
|||
#define Py_XINCREF(op) if ((op) == NULL) ; else Py_INCREF(op)
|
||||
#define Py_XDECREF(op) if ((op) == NULL) ; else Py_DECREF(op)
|
||||
|
||||
/*
|
||||
These are provided as conveniences to Python runtime embedders, so that
|
||||
they can have object code that is not dependent on Python compilation flags.
|
||||
*/
|
||||
PyAPI_FUNC(void) Py_IncRef(PyObject *);
|
||||
PyAPI_FUNC(void) Py_DecRef(PyObject *);
|
||||
|
||||
/*
|
||||
_Py_NoneStruct is an object of undefined type which can be used in contexts
|
||||
where NULL (nil) is not suitable (since NULL often means 'error').
|
||||
|
|
|
@ -471,6 +471,10 @@ Build
|
|||
C API
|
||||
-----
|
||||
|
||||
- New public functions Py_IncRef() and Py_DecRef(), exposing the
|
||||
functionality of the Py_XINCREF() and Py_XDECREF macros. Useful for
|
||||
runtime dynamic embedding of Python.
|
||||
|
||||
- Added a new macro, PySequence_Fast_ITEMS, which retrieves a fast sequence's
|
||||
underlying array of PyObject pointers. Useful for high speed looping.
|
||||
|
||||
|
|
|
@ -146,6 +146,18 @@ _Py_NegativeRefcount(const char *fname, int lineno, PyObject *op)
|
|||
|
||||
#endif /* Py_REF_DEBUG */
|
||||
|
||||
void
|
||||
Py_IncRef(PyObject *o)
|
||||
{
|
||||
Py_XINCREF(o);
|
||||
}
|
||||
|
||||
void
|
||||
Py_DecRef(PyObject *o)
|
||||
{
|
||||
Py_XDECREF(o);
|
||||
}
|
||||
|
||||
PyObject *
|
||||
PyObject_Init(PyObject *op, PyTypeObject *tp)
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue