gh-91768: C API no longer use "const PyObject*" type (#91769)

Py_REFCNT(), Py_TYPE(), Py_SIZE() and Py_IS_TYPE() functions argument
type is now "PyObject*", rather than "const PyObject*".

* Replace also "const PyObject*" with "PyObject*" in functions:

  * _Py_strhex_impl()
  * _Py_strhex_with_sep()
  * _Py_strhex_bytes_with_sep()

* Remove _PyObject_CAST_CONST() and _PyVarObject_CAST_CONST() macros.
* Py_IS_TYPE() can now use Py_TYPE() in its implementation.
This commit is contained in:
Victor Stinner 2022-04-21 22:07:19 +02:00 committed by GitHub
parent 128d624117
commit eaa85cb22f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 32 additions and 26 deletions

View file

@ -62,14 +62,14 @@ the definition of all other Python objects.
See documentation of :c:type:`PyVarObject` above.
.. c:function:: int Py_Is(const PyObject *x, const PyObject *y)
.. c:function:: int Py_Is(PyObject *x, PyObject *y)
Test if the *x* object is the *y* object, the same as ``x is y`` in Python.
.. versionadded:: 3.10
.. c:function:: int Py_IsNone(const PyObject *x)
.. c:function:: int Py_IsNone(PyObject *x)
Test if an object is the ``None`` singleton,
the same as ``x is None`` in Python.
@ -77,7 +77,7 @@ the definition of all other Python objects.
.. versionadded:: 3.10
.. c:function:: int Py_IsTrue(const PyObject *x)
.. c:function:: int Py_IsTrue(PyObject *x)
Test if an object is the ``True`` singleton,
the same as ``x is True`` in Python.
@ -85,7 +85,7 @@ the definition of all other Python objects.
.. versionadded:: 3.10
.. c:function:: int Py_IsFalse(const PyObject *x)
.. c:function:: int Py_IsFalse(PyObject *x)
Test if an object is the ``False`` singleton,
the same as ``x is False`` in Python.
@ -93,7 +93,7 @@ the definition of all other Python objects.
.. versionadded:: 3.10
.. c:function:: PyTypeObject* Py_TYPE(const PyObject *o)
.. c:function:: PyTypeObject* Py_TYPE(PyObject *o)
Get the type of the Python object *o*.
@ -103,6 +103,7 @@ the definition of all other Python objects.
.. versionchanged:: 3.11
:c:func:`Py_TYPE()` is changed to an inline static function.
The parameter type is no longer :c:type:`const PyObject*`.
.. c:function:: int Py_IS_TYPE(PyObject *o, PyTypeObject *type)
@ -120,12 +121,15 @@ the definition of all other Python objects.
.. versionadded:: 3.9
.. c:function:: Py_ssize_t Py_REFCNT(const PyObject *o)
.. c:function:: Py_ssize_t Py_REFCNT(PyObject *o)
Get the reference count of the Python object *o*.
Use the :c:func:`Py_SET_REFCNT()` function to set an object reference count.
.. versionchanged:: 3.11
The parameter type is no longer :c:type:`const PyObject*`.
.. versionchanged:: 3.10
:c:func:`Py_REFCNT()` is changed to the inline static function.
@ -137,7 +141,7 @@ the definition of all other Python objects.
.. versionadded:: 3.9
.. c:function:: Py_ssize_t Py_SIZE(const PyVarObject *o)
.. c:function:: Py_ssize_t Py_SIZE(PyVarObject *o)
Get the size of the Python object *o*.
@ -145,6 +149,7 @@ the definition of all other Python objects.
.. versionchanged:: 3.11
:c:func:`Py_SIZE()` is changed to an inline static function.
The parameter type is no longer :c:type:`const PyVarObject*`.
.. c:function:: void Py_SET_SIZE(PyVarObject *o, Py_ssize_t size)