Use PyModule_AddObject() instead of accessing the module dict directly.
diff --git a/Modules/structmodule.c b/Modules/structmodule.c
index 8cc4945..86ac366 100644
--- a/Modules/structmodule.c
+++ b/Modules/structmodule.c
@@ -1502,16 +1502,18 @@
DL_EXPORT(void)
initstruct(void)
{
- PyObject *m, *d;
+ PyObject *m;
/* Create the module and add the functions */
m = Py_InitModule4("struct", struct_methods, struct__doc__,
(PyObject*)NULL, PYTHON_API_VERSION);
/* Add some symbolic constants to the module */
- d = PyModule_GetDict(m);
- StructError = PyErr_NewException("struct.error", NULL, NULL);
- if (StructError == NULL)
- return;
- PyDict_SetItemString(d, "error", StructError);
+ if (StructError == NULL) {
+ StructError = PyErr_NewException("struct.error", NULL, NULL);
+ if (StructError == NULL)
+ return;
+ }
+ Py_INCREF(StructError);
+ PyModule_AddObject(d, "error", StructError);
}