From: Stefan Behnel Date: Mon, 3 May 2010 16:13:59 +0000 (+0200) Subject: slight speed-up in unicode/bytes indexing X-Git-Tag: 0.13.beta0~112 X-Git-Url: http://git.tremily.us/gitweb.cgi?a=commitdiff_plain;h=485c6f90076e185978cb2d9a5be5f86af31f7197;p=cython.git slight speed-up in unicode/bytes indexing --- diff --git a/Cython/Compiler/Optimize.py b/Cython/Compiler/Optimize.py index c01c6434..42fb3ecd 100644 --- a/Cython/Compiler/Optimize.py +++ b/Cython/Compiler/Optimize.py @@ -2423,7 +2423,7 @@ impl = """ static CYTHON_INLINE Py_UNICODE __Pyx_PyUnicode_GetItemInt(PyObject* unicode, Py_ssize_t index, int check_bounds) { if (check_bounds) { if (unlikely(index >= PyUnicode_GET_SIZE(unicode)) | - unlikely(index < -PyUnicode_GET_SIZE(unicode))) { + ((index < 0) & unlikely(index < -PyUnicode_GET_SIZE(unicode)))) { PyErr_Format(PyExc_IndexError, "string index out of range"); return (Py_UNICODE)-1; } @@ -2444,7 +2444,7 @@ impl = """ static CYTHON_INLINE char __Pyx_PyBytes_GetItemInt(PyObject* bytes, Py_ssize_t index, int check_bounds) { if (check_bounds) { if (unlikely(index >= PyBytes_GET_SIZE(bytes)) | - unlikely(index < -PyBytes_GET_SIZE(bytes))) { + ((index < 0) & unlikely(index < -PyBytes_GET_SIZE(bytes)))) { PyErr_Format(PyExc_IndexError, "string index out of range"); return -1; }