summaryrefslogtreecommitdiffstats
path: root/Modules/pwdmodule.c
diff options
context:
space:
mode:
authorMartin v. Löwis <martin@v.loewis.de>2006-04-16 18:55:50 (GMT)
committerMartin v. Löwis <martin@v.loewis.de>2006-04-16 18:55:50 (GMT)
commit19ab6c98cf0525682b74f1f217503c42bacb4916 (patch)
tree085bf98c3a76a80475ef8864ac329c820286ad04 /Modules/pwdmodule.c
parentd18d5a31535f4162045ce7b7ac8ea320333d24d4 (diff)
downloadcpython-19ab6c98cf0525682b74f1f217503c42bacb4916.zip
cpython-19ab6c98cf0525682b74f1f217503c42bacb4916.tar.gz
cpython-19ab6c98cf0525682b74f1f217503c42bacb4916.tar.bz2
Initialize structseq types only once.
Diffstat (limited to 'Modules/pwdmodule.c')
-rw-r--r--Modules/pwdmodule.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/Modules/pwdmodule.c b/Modules/pwdmodule.c
index 9e7b864..9e01f48 100644
--- a/Modules/pwdmodule.c
+++ b/Modules/pwdmodule.c
@@ -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;
}