[Python-Dev] Baffled by PyArg_ParseTupleAndKeywords modification
Jack Jansen
Jack.Jansen at cwi.nl
Fri Feb 10 15:23:07 CET 2006
I keep running into problems with the "const" modifications to
PyArg_ParseTupleAndKeywords() (rev. 41638 by Jeremy).
I have lots of code of the form
char *kw[] = {"itself", 0};
if (PyArg_ParseTupleAndKeywords(_args, _kwds, "O&", kw,
CFTypeRefObj_Convert, &itself)) ...
which now no longer compiles, neither with C nor with C++ (gcc4, both
MacOSX and Linux). Changing the kw declaration to "const char *kw[]"
makes it compile again.
I don't understand why it doesn't compile: even though the
PyArg_ParseTupleAndKeywords signature promises that it won't change
the "kw" argument I see no reason why I shouldn't be able to pass a
non-const argument.
And to make matters worse adding the "const" of course makes the code
non-portable to previous versions of Python (where the C compiler
rightly complains that I'm passing a const object through a non-const
parameter).
Can anyone enlighten me?
--
Jack Jansen, <Jack.Jansen at cwi.nl>, http://www.cwi.nl/~jack
If I can't dance I don't want to be part of your revolution -- Emma
Goldman
More information about the Python-Dev
mailing list