Marc-Andre Lemburg <[email protected]> added the comment:
Daniel Stutzbach wrote:
>
> Daniel Stutzbach <[email protected]> added the comment:
>
> On Sat, May 8, 2010 at 10:16 AM, Marc-Andre Lemburg
> <[email protected]> wrote:
>> Are you sure this doesn't get optimized away in practice ?
>
> I'm sure it doesn't get optimized away by gcc 4.3, where I tested it. :)
>
>> Sure, though, I don't see how this relates to C code relying
>> on these details, e.g. a C extension will probably use different
>> conversion code depending on whether UCS2 or UCS4 is compatible
>> with some external library, etc.
>
> Can you give an example?
>
> All of the examples I can think of either:
> - poke into PyUnicodeObject's internals,
> - call a Python function that exposes Py_UNICODE or PyUnicodeObject
>
> I'm explicitly trying to protect those two cases. It's quite possible
> that I'm missing something, but I can't think of any other unsafe way
> for a C extension to convert a Python Unicode object to a byte string.
One of the more important cases you are missing is the
argument parser in Python:
Py_UNICODE *x;
Py_ssize_t y;
PyArg_ParseTuple(args, "u#", &x, &y);
This uses the native Py_UNICODE type, but doesn't rely on any
Unicode APIs.
Same for the tuple builder:
args = Py_BuildValue("(u#)", x, y);
----------
_______________________________________
Python tracker <[email protected]>
<http://bugs.python.org/issue8654>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com