]> git.ipfire.org Git - thirdparty/Python/cpython.git/commit
gh-98724: Fix Py_CLEAR() macro side effects (#99100) (#99288)
authorVictor Stinner <vstinner@python.org>
Wed, 9 Nov 2022 15:29:23 +0000 (16:29 +0100)
committerGitHub <noreply@github.com>
Wed, 9 Nov 2022 15:29:23 +0000 (16:29 +0100)
commit108289085719db8b227d65ce945e806f91be8f80
tree04f04fb56672370eacd705c0f5b09b6d031a487b
parentcf5dbb47a2aab02f65c5b25ee1b4886e1b3dfd16
gh-98724: Fix Py_CLEAR() macro side effects (#99100) (#99288)

The Py_CLEAR(), Py_SETREF() and Py_XSETREF() macros now only evaluate
their argument once. If an argument has side effects, these side
effects are no longer duplicated.

Add test_py_clear() and test_py_setref() unit tests to _testcapi.

(cherry picked from commit c03e05c2e72f3ea5e797389e7d1042eef85ad37a)
Include/cpython/object.h
Include/object.h
Misc/NEWS.d/next/C API/2022-11-04-16-13-35.gh-issue-98724.p0urWO.rst [new file with mode: 0644]
Modules/_testcapimodule.c