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