Initialize structseq types only once.

This commit is contained in:
Martin v. Löwis 2006-04-16 18:55:50 +00:00
parent d18d5a3153
commit 19ab6c98cf
8 changed files with 52 additions and 17 deletions

View file

@ -42,6 +42,7 @@ The uid and gid items are integers, all others are strings. An\n\
exception is raised if the entry asked for cannot be found.");
static int initialized;
static PyTypeObject StructPwdType;
static void
@ -186,9 +187,12 @@ initpwd(void)
if (m == NULL)
return;
PyStructSequence_InitType(&StructPwdType, &struct_pwd_type_desc);
if (!initialized)
PyStructSequence_InitType(&StructPwdType,
&struct_pwd_type_desc);
Py_INCREF((PyObject *) &StructPwdType);
PyModule_AddObject(m, "struct_passwd", (PyObject *) &StructPwdType);
/* And for b/w compatibility (this was defined by mistake): */
PyModule_AddObject(m, "struct_pwent", (PyObject *) &StructPwdType);
initialized = 1;
}