[Python-Dev] [Python-checkins] cpython: Move PyUnicode_WCHAR_KIND outside PyUnicode_Kind enum

Victor Stinner victor.stinner at haypocalc.com
Sun Dec 18 21:16:19 CET 2011


On 18/12/2011 21:04, "Martin v. Löwis" wrote:
>> PyUnicode_KIND() only returns PyUnicode_1BYTE_KIND, PyUnicode_2BYTE_KIND
>> or PyUnicode_4BYTE_KIND. Outside unicodeobject.c, you are not supposed
>> to see PyUnicode_WCHAR_KIND.
>
> Why do you say that? It can very well happen, assuming you call
> PyUnicode_KIND on a string that is not ready. That would be a
> bug in the module, but people do make bugs when programming.

I added assert(PyUnicode_IS_READY(op)) to the macro, so the bug will be 
quickly catched in debug mode. I forgot that it is just an assertion and 
few people use Python compiled in debug mode.

> If the rationale is to simplify silencing compiler errors, I
> vote for reverting the enumeration back to a macro list.

I'm not sure that gcc will not complain if only 3 values are handled. I 
agree to revert the commit if that helps developers to write bugs.

Victor


More information about the Python-Dev mailing list