summaryrefslogtreecommitdiffstats
path: root/Python/optimizer_analysis.c
diff options
context:
space:
mode:
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>2024-07-15 22:15:23 (GMT)
committerGitHub <noreply@github.com>2024-07-15 22:15:23 (GMT)
commit0794220a6935a25bd9667be60b0c67403bc73f47 (patch)
treeabfbf472fe853d9c1ac9ecec8ec831c4d54ae1c7 /Python/optimizer_analysis.c
parent6396c77571aee99386a7b5a5863bbe0b8c5df4b1 (diff)
downloadcpython-0794220a6935a25bd9667be60b0c67403bc73f47.zip
cpython-0794220a6935a25bd9667be60b0c67403bc73f47.tar.gz
cpython-0794220a6935a25bd9667be60b0c67403bc73f47.tar.bz2
[3.13] gh-121794: Don't set `ob_tid` to zero in fast-path dealloc (GH-121799) (#121821)
We should maintain the invariant that a zero `ob_tid` implies the refcount fields are merged. * Move the assignment in `_Py_MergeZeroLocalRefcount` to immediately before the refcount merge. * Update `_PyTrash_thread_destroy_chain` to set `ob_ref_shared` to `_Py_REF_MERGED` when setting `ob_tid` to zero. Also check this invariant with assertions in the GC in debug builds. That uncovered a bug when running out of memory during GC. (cherry picked from commit d23be3947ced081914f4458c84f729c9c37f0219) Co-authored-by: Sam Gross <colesbury@gmail.com>
Diffstat (limited to 'Python/optimizer_analysis.c')
0 files changed, 0 insertions, 0 deletions