[Python-Dev] Const-correctness in C-API Object Protocol

Brett Cannon brett at python.org
Tue Feb 22 19:55:26 CET 2011


On Mon, Feb 21, 2011 at 15:34, David Claridge <daave at daave.com> wrote:

> Hi,
>
> I was wondering if there is some reason why C API functions like
> PyObject_CallMethod[1] and PySys_GetObject[2] take char* arguments
> rather than const char*s? If there is some reason these methods will
> modify their string arguments, it would be nice if it was documented,
> because at the moment it's unclear whether it is safe to cast a string
> literal to char* in these cases. For instance it seems reasonable that
> I should be able to call PySys_GetObject("path") without having to
> deal with a 'deprecated conversion from string constant to ‘char*’'
> error.
>

Probably because (a) the person who first wrote them used char* instead of
const char*, and (b) it gives us API flexibility by not promising to not
alter the char array at some point in the future.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-dev/attachments/20110222/5e621d48/attachment.html>


More information about the Python-Dev mailing list