summaryrefslogtreecommitdiffstats
path: root/Modules/posixmodule.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/posixmodule.c
parentd18d5a31535f4162045ce7b7ac8ea320333d24d4 (diff)
downloadcpython-19ab6c98cf0525682b74f1f217503c42bacb4916.zip
cpython-19ab6c98cf0525682b74f1f217503c42bacb4916.tar.gz
cpython-19ab6c98cf0525682b74f1f217503c42bacb4916.tar.bz2
Initialize structseq types only once.
Diffstat (limited to 'Modules/posixmodule.c')
-rw-r--r--Modules/posixmodule.c24
1 files changed, 14 insertions, 10 deletions
diff --git a/Modules/posixmodule.c b/Modules/posixmodule.c
index e07021a..53f35da 100644
--- a/Modules/posixmodule.c
+++ b/Modules/posixmodule.c
@@ -981,6 +981,7 @@ static PyStructSequence_Desc statvfs_result_desc = {
10
};
+static int initialized;
static PyTypeObject StatResultType;
static PyTypeObject StatVFSResultType;
static newfunc structseq_new;
@@ -8241,21 +8242,24 @@ INITFUNC(void)
posix_putenv_garbage = PyDict_New();
#endif
- stat_result_desc.name = MODNAME ".stat_result";
- stat_result_desc.fields[7].name = PyStructSequence_UnnamedField;
- stat_result_desc.fields[8].name = PyStructSequence_UnnamedField;
- stat_result_desc.fields[9].name = PyStructSequence_UnnamedField;
- PyStructSequence_InitType(&StatResultType, &stat_result_desc);
- structseq_new = StatResultType.tp_new;
- StatResultType.tp_new = statresult_new;
+ if (!initialized) {
+ stat_result_desc.name = MODNAME ".stat_result";
+ stat_result_desc.fields[7].name = PyStructSequence_UnnamedField;
+ stat_result_desc.fields[8].name = PyStructSequence_UnnamedField;
+ stat_result_desc.fields[9].name = PyStructSequence_UnnamedField;
+ PyStructSequence_InitType(&StatResultType, &stat_result_desc);
+ structseq_new = StatResultType.tp_new;
+ StatResultType.tp_new = statresult_new;
+
+ statvfs_result_desc.name = MODNAME ".statvfs_result";
+ PyStructSequence_InitType(&StatVFSResultType, &statvfs_result_desc);
+ }
Py_INCREF((PyObject*) &StatResultType);
PyModule_AddObject(m, "stat_result", (PyObject*) &StatResultType);
-
- statvfs_result_desc.name = MODNAME ".statvfs_result";
- PyStructSequence_InitType(&StatVFSResultType, &statvfs_result_desc);
Py_INCREF((PyObject*) &StatVFSResultType);
PyModule_AddObject(m, "statvfs_result",
(PyObject*) &StatVFSResultType);
+ initialized = 1;
}
#ifdef __cplusplus