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/115044.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:04:24 CET 2011
Am 18.12.2011 20:45, schrieb Victor Stinner:
> On 18/12/2011 20:34, "Martin v. Löwis" wrote:
>>>    Move PyUnicode_WCHAR_KIND outside PyUnicode_Kind enum
>>
>> What's the rationale for that change? It's a valid kind value, after
>> all, and the C convention is that an enumeration lists all valid values
>> (else there wouldn't be a need for an enumeration in the first place).
> 
> 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.

> For switch/case, it avoids the need of adding a dummy
> PyUnicode_WCHAR_KIND case (or a default case).

... and thus hides a potential source of errors, as people may
forget to call ready, and then fall through the case, letting
god-knows-what happen.

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

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