mirror of https://github.com/python/cpython.git
Fix refleaks in _ctypes PyCSimpleType_New, which fixes the refleak seen in test___all__.
This commit is contained in:
parent
b6edf193fb
commit
e363b1434d
|
@ -1889,17 +1889,16 @@ PyCSimpleType_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
|
|||
}
|
||||
fmt = _ctypes_get_fielddesc(PyString_AS_STRING(proto));
|
||||
if (fmt == NULL) {
|
||||
Py_DECREF(result);
|
||||
PyErr_Format(PyExc_ValueError,
|
||||
"_type_ '%s' not supported",
|
||||
PyString_AS_STRING(proto));
|
||||
return NULL;
|
||||
goto error;
|
||||
}
|
||||
|
||||
stgdict = (StgDictObject *)PyObject_CallObject(
|
||||
(PyObject *)&PyCStgDict_Type, NULL);
|
||||
if (!stgdict)
|
||||
return NULL;
|
||||
goto error;
|
||||
|
||||
stgdict->ffi_type_pointer = *fmt->pffi_type;
|
||||
stgdict->align = fmt->pffi_type->alignment;
|
||||
|
@ -1914,6 +1913,7 @@ PyCSimpleType_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
|
|||
#endif
|
||||
if (stgdict->format == NULL) {
|
||||
Py_DECREF(result);
|
||||
Py_DECREF(proto);
|
||||
Py_DECREF((PyObject *)stgdict);
|
||||
return NULL;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue