bpo-38187: Fix reference leak in test_tools (GH-16233)
diff --git a/Lib/test/test_tools/test_c_analyzer/test_c_analyzer_common/test_known.py b/Lib/test/test_tools/test_c_analyzer/test_c_analyzer_common/test_known.py
index 215023d..93100e0 100644
--- a/Lib/test/test_tools/test_c_analyzer/test_c_analyzer_common/test_known.py
+++ b/Lib/test/test_tools/test_c_analyzer/test_c_analyzer_common/test_known.py
@@ -15,6 +15,9 @@
_return_read_tsv = ()
+ def tearDown(self):
+ Variable._isglobal.instances.clear()
+
@property
def calls(self):
try:
diff --git a/Tools/c-analyzer/c_parser/info.py b/Tools/c-analyzer/c_parser/info.py
index 9ab6979..d7368b4 100644
--- a/Tools/c-analyzer/c_parser/info.py
+++ b/Tools/c-analyzer/c_parser/info.py
@@ -22,6 +22,9 @@
__slots__ = ()
_isglobal = util.Slot()
+ def __del__(self):
+ del self._isglobal
+
@classonly
def from_parts(cls, filename, funcname, name, vartype, isglobal=False):
id = info.ID(filename, funcname, name)