Change the example code to prefer PyModule_Add*() instead of using the

module dictionary directly.  Also, be more careful about not re-initializing
globals in the event of re-initialization of a C extension.
This commit is contained in:
Fred Drake 2002-03-12 21:49:44 +00:00
parent 193a3f6d37
commit 1de5a722d6
2 changed files with 12 additions and 12 deletions

View file

@ -231,7 +231,11 @@ initxx(void)
m = Py_InitModule("xx", xx_methods);
/* Add some symbolic constants to the module */
d = PyModule_GetDict(m);
ErrorObject = PyErr_NewException("xx.error", NULL, NULL);
PyDict_SetItemString(d, "error", ErrorObject);
if (ErrorObject == NULL) {
ErrorObject = PyErr_NewException("xx.error", NULL, NULL);
if (ErrorObject == NULL)
return;
}
Py_INCREF(ErrorObject);
PyModule_AddObject(d, "error", ErrorObject);
}