Commit 8145cba6 authored by Robert Bradshaw's avatar Robert Bradshaw

Optimize indexing for -1 case.

parent ad3fc733
......@@ -5412,12 +5412,19 @@ static INLINE PyObject *__Pyx_GetItemInt_Generic(PyObject *o, Py_ssize_t i, int
""" + ''.join([
"""
static INLINE PyObject *__Pyx_GetItemInt_%(type)s(PyObject *o, Py_ssize_t i, int is_unsigned) {
if (likely(o != Py_None && likely((0 <= i) & (i < Py%(type)s_GET_SIZE(o))))) {
PyObject *r = Py%(type)s_GET_ITEM(o, i);
Py_INCREF(r);
return r;
if (likely(o != Py_None)) {
if (likely((0 <= i) & (i < Py%(type)s_GET_SIZE(o)))) {
PyObject *r = Py%(type)s_GET_ITEM(o, i);
Py_INCREF(r);
return r;
}
else if ((i == -1) & likely(Py%(type)s_GET_SIZE(o) > 0)) {
PyObject *r = Py%(type)s_GET_ITEM(o, Py%(type)s_GET_SIZE(o) - 1);
Py_INCREF(r);
return r;
}
}
else return __Pyx_GetItemInt_Generic(o, i, is_unsigned);
return __Pyx_GetItemInt_Generic(o, i, is_unsigned);
}
""" % {'type' : type_name} for type_name in ('List', 'Tuple')
]) + """
......
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