SIGN IN SIGN UP

[3.10] gh-94207: Fix struct module leak (GH-94239) (GH-94266)

* gh-94207: Fix struct module leak (GH-94239)

Make _struct.Struct a GC type

This fixes a memory leak in the _struct module, where as soon
as a Struct object is stored in the cache, there's a cycle from
the _struct module to the cache to Struct objects to the Struct
type back to the module. If _struct.Struct is not gc-tracked, that
cycle is never collected.

This PR makes _struct.Struct GC-tracked, and adds a regression test.
(cherry picked from commit 6b865349aae47b90f9ef0b98f3fe3720c2f05601)

Co-authored-by: Mark Dickinson <dickinsm@gmail.com>
M
Miss Islington (bot) committed
86e49a5026ab9f746b87daae2aca81c845b4a5f4
Parent: 1494382
Committed by GitHub <noreply@github.com> on 6/25/2022, 3:05:06 PM