]> git.ipfire.org Git - thirdparty/Python/cpython.git/commit
bpo-42536: GC track recycled tuples (GH-23623) (GH-23651)
authorBrandt Bucher <brandtbucher@gmail.com>
Mon, 7 Dec 2020 20:07:48 +0000 (12:07 -0800)
committerGitHub <noreply@github.com>
Mon, 7 Dec 2020 20:07:48 +0000 (20:07 +0000)
commit60463e8e4f79e5b5e96dc43fb83ded373b489e33
treea396c7ee5d9b3db595fac4980fc0700e4fe8a2e9
parente9a6dcdefabb6c19074566f4ee0e02daaf57be18
bpo-42536: GC track recycled tuples (GH-23623) (GH-23651)

Several built-in and standard library types now ensure that their internal result tuples are always tracked by the garbage collector:

- collections.OrderedDict.items
- dict.items
- enumerate
- functools.reduce
- itertools.combinations
- itertools.combinations_with_replacement
- itertools.permutations
- itertools.product
- itertools.zip_longest
- zip

Previously, they could have become untracked by a prior garbage collection.
(cherry picked from commit 226a012d1cd61f42ecd3056c554922f359a1a35d)
12 files changed:
Lib/test/test_builtin.py
Lib/test/test_dict.py
Lib/test/test_enumerate.py
Lib/test/test_itertools.py
Lib/test/test_ordered_dict.py
Misc/NEWS.d/next/Core and Builtins/2020-12-02-20-23-31.bpo-42536.Kx3ZOu.rst [new file with mode: 0644]
Modules/_functoolsmodule.c
Modules/itertoolsmodule.c
Objects/dictobject.c
Objects/enumobject.c
Objects/odictobject.c
Python/bltinmodule.c