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

Reply via email to