A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://mail.python.org/pipermail/python-dev/2011-December/115046.html below:

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

[Python-Dev] [Python-checkins] cpython: Move PyUnicode_WCHAR_KIND outside PyUnicode_Kind enum"Martin v. Löwis" martin at v.loewis.de
Sun Dec 18 21:36:44 CET 2011
Am 18.12.2011 21:16, schrieb Victor Stinner:
> 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.

It helps to detect bugs. User should be aware that there is an
additional case, and put something like

  case PyUnicode_WCHAR_KIND:
     /* string is guaranteed to be ready here */
     assert(0);

into their code.

Regards,
Martin
More information about the Python-Dev mailing list

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4