mirror of https://github.com/python/cpython
The previous change was causing a segfault after multiple calls to Py_Initialize() and Py_Finalize().
This commit is contained in:
parent
0d9244332b
commit
796fc31585
|
@ -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
|
||||
|
|
|
@ -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,7 +1345,8 @@ _PySys_Init(void)
|
|||
PyDict_SetItemString(sysdict, "warnoptions", warnoptions);
|
||||
}
|
||||
|
||||
PyStructSequence_InitType(&FlagsType, &flags_desc);
|
||||
if (FlagsType.tp_name == 0)
|
||||
PyStructSequence_InitType(&FlagsType, &flags_desc);
|
||||
SET_SYS_FROM_STRING("flags", make_flags());
|
||||
/* prevent user from creating new instances */
|
||||
FlagsType.tp_init = NULL;
|
||||
|
|
Loading…
Reference in New Issue