From 485c6f90076e185978cb2d9a5be5f86af31f7197 Mon Sep 17 00:00:00 2001 From: Stefan Behnel Date: Mon, 3 May 2010 18:13:59 +0200 Subject: [PATCH] slight speed-up in unicode/bytes indexing --- Cython/Compiler/Optimize.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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; } -- 2.26.2