John Ehresman, 27.05.2011 21:55:
ord() applied to a Py_UNICODE typed variable seems to yield a 1 character unicode string rather than an integer. The following doctest fails when added to unicodefunction.pyx:def Py_UNICODE_ord(unicode s): """ >>> Py_UNICODE_ord(u' ') 32 """ cdef Py_UNICODE u u = s[0] return ord(u)
ord() is actually unpacked in this case (see Optimise.py), but the result type is incorrect. It's Py_UNICODE (which coerces back to a unicode string), whereas it should be int (thus coercing to a Python integer object).
I pushed a fix, and also the obvious optimisation for calling ord() on single character string literals.
Thanks for the report. Stefan _______________________________________________ cython-devel mailing list [email protected] http://mail.python.org/mailman/listinfo/cython-devel
