[Python-Dev] [Python-checkins] cpython: Migrate str.expandtabs to the new API

Victor Stinner victor.stinner at haypocalc.com
Wed Oct 5 01:44:31 CEST 2011


Le 04/10/2011 18:45, "Martin v. Löwis" a écrit :
>
>> Migrate str.expandtabs to the new API
>
> This needs
>
> if (PyUnicode_READY(self) == -1)
> return NULL;
>
> right after the ParseTuple call. In most cases, the
> check will be a noop. But if it's not, omitting it will
> make expandtabs have no effect, since the string length
> will be 0 (in a debug build, you also get an assertion
> failure).

This "make input string ready" code path is not well tested because all 
functions creating strings in unicodeobject.c ensure that the string is 
ready.

I disabled the call to PyUnicode_READY() on result in debug mode in 
unicodeobject.c (define DONT_MAKE_RESULT_READY). It helped me to fix 
bugs in various functions, see my commit b66033a0f140.

Victor


More information about the Python-Dev mailing list