]> git.ipfire.org Git - thirdparty/Python/cpython.git/commit
bpo-41568: Fix refleaks in zoneinfo subclasses (GH-21907)
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>
Mon, 17 Aug 2020 23:24:15 +0000 (16:24 -0700)
committerGitHub <noreply@github.com>
Mon, 17 Aug 2020 23:24:15 +0000 (16:24 -0700)
commite3cafebb5cb2bc4df03afb03fa206a37d076d7ee
tree30b725333fae212204b979cb57a3ee36d0565d81
parentd6bdf6d52f0400df1bd1dce24aaad9514015c755
bpo-41568: Fix refleaks in zoneinfo subclasses (GH-21907)

* Fix refleak in C module __init_subclass__

This was leaking a reference to the weak cache dictionary for every
ZoneInfo subclass created.

* Fix refleak in ZoneInfo subclass's clear_cache

The previous version of the code accidentally cleared the global
ZONEINFO_STRONG_CACHE variable (and inducing `ZoneInfo` to create a new
strong cache) on calls to a subclass's `clear_cache()`. This would not
affect guaranteed behavior, but it's still not the right thing to do
(and it caused reference leaks).
(cherry picked from commit c3dd7e45cc5d36bbe2295c2840faabb5c75d83e4)

Co-authored-by: Paul Ganssle <paul@ganssle.io>
Modules/_zoneinfo.c