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 _______________________________________________ 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