Fixed a segfault when ctypes.wintypes were imported on

non-Windows machines.
This commit is contained in:
Thomas Heller 2006-07-10 09:31:06 +00:00
parent dda068dee1
commit 7b1da513fd
2 changed files with 12 additions and 2 deletions

View File

@ -39,6 +39,9 @@ Core and builtins
Library
-------
- Fixed a segfault in _ctypes when ctypes.wintypes were imported
on non-Windows platforms.
- Bug #1518190: The ctypes.c_void_p constructor now accepts any
integer or long, without range checking.

View File

@ -1384,13 +1384,20 @@ SimpleType_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
Py_DECREF(result);
return NULL;
}
fmt = getentry(PyString_AS_STRING(proto));
if (fmt == NULL) {
Py_DECREF(result);
PyErr_Format(PyExc_ValueError,
"_type_ '%s' not supported",
PyString_AS_STRING(proto));
return NULL;
}
stgdict = (StgDictObject *)PyObject_CallObject(
(PyObject *)&StgDict_Type, NULL);
if (!stgdict)
return NULL;
fmt = getentry(PyString_AS_STRING(proto));
stgdict->ffi_type_pointer = *fmt->pffi_type;
stgdict->align = fmt->pffi_type->alignment;
stgdict->length = 0;