Commit 9f49a988 authored by Stefan Behnel's avatar Stefan Behnel

adapted __Pyx_PyObject_AsPy_UCS4() to PEP 393

parent 74a080f4
...@@ -992,7 +992,15 @@ impl=''' ...@@ -992,7 +992,15 @@ impl='''
static CYTHON_INLINE Py_UCS4 __Pyx_PyObject_AsPy_UCS4(PyObject* x) { static CYTHON_INLINE Py_UCS4 __Pyx_PyObject_AsPy_UCS4(PyObject* x) {
long ival; long ival;
if (PyUnicode_Check(x)) { if (PyUnicode_Check(x)) {
if (likely(PyUnicode_GET_SIZE(x) == 1)) { Py_ssize_t length;
#ifdef CYTHON_PEP393_ENABLED
length = PyUnicode_GET_LENGTH(x);
if (likely(length == 1)) {
return PyUnicode_READ_CHAR(x, 0);
}
#else
length = PyUnicode_GET_SIZE(x);
if (likely(length == 1)) {
return PyUnicode_AS_UNICODE(x)[0]; return PyUnicode_AS_UNICODE(x)[0];
} }
#if Py_UNICODE_SIZE == 2 #if Py_UNICODE_SIZE == 2
...@@ -1006,9 +1014,10 @@ static CYTHON_INLINE Py_UCS4 __Pyx_PyObject_AsPy_UCS4(PyObject* x) { ...@@ -1006,9 +1014,10 @@ static CYTHON_INLINE Py_UCS4 __Pyx_PyObject_AsPy_UCS4(PyObject* x) {
} }
} }
#endif #endif
#endif
PyErr_Format(PyExc_ValueError, PyErr_Format(PyExc_ValueError,
"only single character unicode strings can be converted to Py_UCS4, " "only single character unicode strings can be converted to Py_UCS4, "
"got length %"PY_FORMAT_SIZE_T"d", PyUnicode_GET_SIZE(x)); "got length %"PY_FORMAT_SIZE_T"d", length);
return (Py_UCS4)-1; return (Py_UCS4)-1;
} }
ival = __Pyx_PyInt_AsLong(x); ival = __Pyx_PyInt_AsLong(x);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment