On 02/22/2011 01:55 PM, Brett Cannon wrote:
On Mon, Feb 21, 2011 at 15:34, David Claridge <da...@daave.com <mailto:da...@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.
Also changing it now would be a giant hassle, leading to so-called "const poisoning" where many, many APIs need to be changed before everything would again work.
_______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com