The previous change was causing a segfault after multiple calls to Py_Initialize() and Py_Finalize().

This commit is contained in:
Christian Heimes 2008-01-30 18:58:29 +00:00
parent 0d9244332b
commit 796fc31585
2 changed files with 8 additions and 12 deletions

View File

@ -66,7 +66,7 @@ PyFloat_GetMin(void)
return DBL_MIN;
}
static PyTypeObject FloatInfoType = {0};
static PyTypeObject FloatInfoType = {0, 0, 0, 0, 0, 0};
PyDoc_STRVAR(floatinfo__doc__,
"sys.floatinfo\n\
@ -105,15 +105,9 @@ static PyStructSequence_Desc floatinfo_desc = {
PyObject *
PyFloat_GetInfo(void)
{
static PyObject* floatinfo;
PyObject* floatinfo;
int pos = 0;
if (floatinfo != NULL) {
Py_INCREF(floatinfo);
return floatinfo;
}
PyStructSequence_InitType(&FloatInfoType, &floatinfo_desc);
floatinfo = PyStructSequence_New(&FloatInfoType);
if (floatinfo == NULL) {
return NULL;
@ -142,7 +136,6 @@ PyFloat_GetInfo(void)
Py_CLEAR(floatinfo);
return NULL;
}
return floatinfo;
}
@ -1669,6 +1662,9 @@ _PyFloat_Init(void)
/* Initialize floating point repr */
_PyFloat_DigitsInit();
#endif
/* Init float info */
if (FloatInfoType.tp_name == 0)
PyStructSequence_InitType(&FloatInfoType, &floatinfo_desc);
}
void

View File

@ -1107,7 +1107,7 @@ PyDoc_STRVAR(flags__doc__,
\n\
Flags provided through command line arguments or environment vars.");
static PyTypeObject FlagsType;
static PyTypeObject FlagsType = {0, 0, 0, 0, 0, 0};
static PyStructSequence_Field flags_fields[] = {
{"debug", "-d"},
@ -1180,7 +1180,6 @@ make_flags(void)
if (PyErr_Occurred()) {
return NULL;
}
return seq;
}
@ -1346,6 +1345,7 @@ _PySys_Init(void)
PyDict_SetItemString(sysdict, "warnoptions", warnoptions);
}
if (FlagsType.tp_name == 0)
PyStructSequence_InitType(&FlagsType, &flags_desc);
SET_SYS_FROM_STRING("flags", make_flags());
/* prevent user from creating new instances */