Skip to content
Snippets Groups Projects
Commit 831efe3b1e83 authored by Victor Stinner's avatar Victor Stinner
Browse files

Use Py_SET_SIZE() and Py_SET_REFCNT() on Python 3.9.0a4 and newer (GH-3639)

* Add __Pyx_SET_SIZE() function: use Py_SET_SIZE() on Python 3.9.0a4
and newer, or use Py_SIZE() as an l-value on older Python versions.

Py_SIZE() must not be used as an l-value anymore in Python 3.9:
Py_SET_SIZE() must be used instead:

* https://bugs.python.org/issue39573
* https://docs.python.org/dev/c-api/structures.html#c.Py_SET_SIZE

* Add __Pyx_SET_REFCNT() function: use Py_SET_REFCNT() on Python 3.9.0a4
and newer, or use Py_REFCNT() as an l-value on older Python versions.

Py_REFCNT() must not be used as an l-value anymore in Python 3.9:
Py_SET_REFCNT() must be used instead:

* https://bugs.python.org/issue39573
* https://docs.python.org/dev/c-api/structures.html#c.Py_SET_REFCNT

Use it in ModuleNode.generate_usr_dealloc_call():

* Replace ++Py_REFCNT(o) with __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1)
* Replace --Py_REFCNT(o) with __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1)
parent 78f8ad551b6b
Branches
No related tags found
No related merge requests found
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment