mirror of
https://github.com/python/cpython.git
synced 2026-03-27 15:10:56 +00:00
Make examples do error checking on Py_InitModule
This commit is contained in:
parent
c57221e158
commit
a4103a3248
1 changed files with 10 additions and 4 deletions
|
|
@ -221,6 +221,8 @@ initspam(void)
|
|||
PyObject *m;
|
||||
|
||||
m = Py_InitModule("spam", SpamMethods);
|
||||
if (m == NULL)
|
||||
return;
|
||||
|
||||
SpamError = PyErr_NewException("spam.error", NULL, NULL);
|
||||
Py_INCREF(SpamError);
|
||||
|
|
@ -365,9 +367,9 @@ is inserted in the dictionary \code{sys.modules} under the key
|
|||
created module based upon the table (an array of \ctype{PyMethodDef}
|
||||
structures) that was passed as its second argument.
|
||||
\cfunction{Py_InitModule()} returns a pointer to the module object
|
||||
that it creates (which is unused here). It aborts with a fatal error
|
||||
if the module could not be initialized satisfactorily, so the caller
|
||||
doesn't need to check for errors.
|
||||
that it creates (which is unused here). It may abort with a fatal error
|
||||
for certain errors, or return \NULL{} if the module could not be
|
||||
initialized satisfactorily.
|
||||
|
||||
When embedding Python, the \cfunction{initspam()} function is not
|
||||
called automatically unless there's an entry in the
|
||||
|
|
@ -1276,6 +1278,8 @@ initspam(void)
|
|||
PyObject *c_api_object;
|
||||
|
||||
m = Py_InitModule("spam", SpamMethods);
|
||||
if (m == NULL)
|
||||
return;
|
||||
|
||||
/* Initialize the C API pointer array */
|
||||
PySpam_API[PySpam_System_NUM] = (void *)PySpam_System;
|
||||
|
|
@ -1362,7 +1366,9 @@ initclient(void)
|
|||
{
|
||||
PyObject *m;
|
||||
|
||||
Py_InitModule("client", ClientMethods);
|
||||
m = Py_InitModule("client", ClientMethods);
|
||||
if (m == NULL)
|
||||
return;
|
||||
if (import_spam() < 0)
|
||||
return;
|
||||
/* additional initialization can happen here */
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue