gh-108727: Fix segfault due to missing tp_dealloc definition for CounterOptimizer_Type (GH-108734)

This commit is contained in:
Irit Katriel 2023-09-01 10:16:09 +01:00 committed by GitHub
parent 044b8b3b6a
commit 844f4c2e12
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 10 additions and 0 deletions

View File

@ -2284,6 +2284,13 @@ def clear_executors(func):
class TestOptimizerAPI(unittest.TestCase):
def test_get_counter_optimizer_dealloc(self):
# See gh-108727
def f():
_testinternalcapi.get_counter_optimizer()
f()
def test_get_set_optimizer(self):
old = _testinternalcapi.get_optimizer()
opt = _testinternalcapi.get_counter_optimizer()

View File

@ -0,0 +1,2 @@
Define ``tp_dealloc`` for ``CounterOptimizer_Type``. This fixes a segfault
on deallocation.

View File

@ -289,6 +289,7 @@ static PyTypeObject CounterOptimizer_Type = {
.tp_itemsize = 0,
.tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_DISALLOW_INSTANTIATION,
.tp_methods = counter_methods,
.tp_dealloc = (destructor)PyObject_Del,
};
PyObject *