Skip to content

Commit 1877f7b

Browse files
committed
fix memory leak
1 parent 96194a1 commit 1877f7b

File tree

1 file changed

+17
-3
lines changed

1 file changed

+17
-3
lines changed

Modules/_ctypes/_ctypes.c

+17-3
Original file line numberDiff line numberDiff line change
@@ -930,7 +930,7 @@ static PyType_Slot pycstruct_type_slots[] = {
930930
{Py_tp_clear, CDataType_clear},
931931
{Py_tp_methods, CDataType_methods},
932932
{Py_tp_new, PyCStructType_new},
933-
933+
934934
// Sequence protocol.
935935
{Py_sq_repeat, CDataType_repeat},
936936
{0, NULL},
@@ -1529,14 +1529,21 @@ static int
15291529
PyCArrayType_traverse(PyTypeObject *self, visitproc visit, void *arg)
15301530
{
15311531
Py_VISIT(Py_TYPE(self));
1532-
return 0;
1532+
return PyType_Type.tp_traverse((PyObject *)self, visit, arg);
1533+
}
1534+
1535+
static int
1536+
PyCArrayType_clear(PyObject *self)
1537+
{
1538+
return PyType_Type.tp_clear(self);
15331539
}
15341540

15351541
static PyType_Slot pycarray_type_slots[] = {
15361542
{Py_tp_doc, PyDoc_STR("metatype for the Array Objects")},
15371543
{Py_tp_traverse, PyCArrayType_traverse},
15381544
{Py_tp_methods, CDataType_methods},
15391545
{Py_tp_new, PyCArrayType_new},
1546+
{Py_tp_clear, PyCArrayType_clear},
15401547

15411548
// Sequence protocol.
15421549
{Py_sq_repeat, CDataType_repeat},
@@ -2192,7 +2199,13 @@ static int
21922199
PyCSimpleType_traverse(PyTypeObject *self, visitproc visit, void *arg)
21932200
{
21942201
Py_VISIT(Py_TYPE(self));
2195-
return 0;
2202+
return PyType_Type.tp_traverse((PyObject *)self, visit, arg);
2203+
}
2204+
2205+
static int
2206+
PyCSimpleType_clear(PyObject *self)
2207+
{
2208+
return PyType_Type.tp_clear(self);
21962209
}
21972210

21982211
static PyMethodDef PyCSimpleType_methods[] = {
@@ -2209,6 +2222,7 @@ static PyType_Slot pycsimple_type_slots[] = {
22092222
{Py_tp_methods, PyCSimpleType_methods},
22102223
{Py_tp_new, PyCSimpleType_new},
22112224
{Py_tp_traverse, PyCSimpleType_traverse},
2225+
{Py_tp_clear, PyCSimpleType_clear},
22122226

22132227
// Sequence protocol.
22142228
{Py_sq_repeat, CDataType_repeat},

0 commit comments

Comments
 (0)