PyImport_AppendInittab() took a char * as a first argument even though that

string was stored beyond the life of the call. Changed the signature to be
const char * to help make this point.

Closes issue #1419652.
This commit is contained in:
Brett Cannon 2009-04-02 03:17:39 +00:00
parent c730a6a123
commit c4f90ebea7
3 changed files with 5 additions and 2 deletions

View File

@ -232,7 +232,7 @@ Importing Modules
tricks with this to provide a dynamically created collection of frozen modules. tricks with this to provide a dynamically created collection of frozen modules.
.. cfunction:: int PyImport_AppendInittab(char *name, void (*initfunc)(void)) .. cfunction:: int PyImport_AppendInittab(const char *name, void (*initfunc)(void))
Add a single module to the existing table of built-in modules. This is a Add a single module to the existing table of built-in modules. This is a
convenience wrapper around :cfunc:`PyImport_ExtendInittab`, returning ``-1`` if convenience wrapper around :cfunc:`PyImport_ExtendInittab`, returning ``-1`` if

View File

@ -692,6 +692,9 @@ Build
C-API C-API
----- -----
- Issue #1419652: Change the first argument to PyImport_AppendInittab() to
``const char *`` as the string is stored beyond the call.
- Some PyBytes_* aliases have been removed because they don't exist in 3.x. - Some PyBytes_* aliases have been removed because they don't exist in 3.x.
- Issue #5175: PyLong_AsUnsignedLongLong now raises OverflowError - Issue #5175: PyLong_AsUnsignedLongLong now raises OverflowError

View File

@ -3376,7 +3376,7 @@ PyImport_ExtendInittab(struct _inittab *newtab)
/* Shorthand to add a single entry given a name and a function */ /* Shorthand to add a single entry given a name and a function */
int int
PyImport_AppendInittab(char *name, void (*initfunc)(void)) PyImport_AppendInittab(const char *name, void (*initfunc)(void))
{ {
struct _inittab newtab[2]; struct _inittab newtab[2];