| 11699 | #endif |
| 11700 | } |
| 11701 | static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Fast(PyObject *o, Py_ssize_t i, int is_list, |
| 11702 | CYTHON_NCP_UNUSED int wraparound, |
| 11703 | CYTHON_NCP_UNUSED int boundscheck) { |
| 11704 | #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS && CYTHON_USE_TYPE_SLOTS |
| 11705 | if (is_list || PyList_CheckExact(o)) { |
| 11706 | Py_ssize_t n = ((!wraparound) | likely(i >= 0)) ? i : i + PyList_GET_SIZE(o); |
| 11707 | if ((!boundscheck) || (likely(__Pyx_is_valid_index(n, PyList_GET_SIZE(o))))) { |
| 11708 | PyObject *r = PyList_GET_ITEM(o, n); |
| 11709 | Py_INCREF(r); |
| 11710 | return r; |
| 11711 | } |
| 11712 | } |
| 11713 | else if (PyTuple_CheckExact(o)) { |
| 11714 | Py_ssize_t n = ((!wraparound) | likely(i >= 0)) ? i : i + PyTuple_GET_SIZE(o); |
| 11715 | if ((!boundscheck) || likely(__Pyx_is_valid_index(n, PyTuple_GET_SIZE(o)))) { |
| 11716 | PyObject *r = PyTuple_GET_ITEM(o, n); |
| 11717 | Py_INCREF(r); |
| 11718 | return r; |
| 11719 | } |
| 11720 | } else { |
| 11721 | PySequenceMethods *m = Py_TYPE(o)->tp_as_sequence; |
| 11722 | if (likely(m && m->sq_item)) { |
| 11723 | if (wraparound && unlikely(i < 0) && likely(m->sq_length)) { |
| 11724 | Py_ssize_t l = m->sq_length(o); |
| 11725 | if (likely(l >= 0)) { |
| 11726 | i += l; |
| 11727 | } else { |
| 11728 | if (!PyErr_ExceptionMatches(PyExc_OverflowError)) |
| 11729 | return NULL; |
| 11730 | PyErr_Clear(); |
| 11731 | } |
| 11732 | } |
| 11733 | return m->sq_item(o, i); |
| 11734 | } |
| 11735 | } |
| 11736 | #else |
| 11737 | if (is_list || PySequence_Check(o)) { |
| 11738 | return PySequence_GetItem(o, i); |
| 11739 | } |
| 11740 | #endif |
| 11741 | return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i)); |
| 11742 | } |
| 11743 | |
| 11744 | /* IsLittleEndian */ |
| 11745 | static CYTHON_INLINE int __Pyx_Is_Little_Endian(void) |
nothing calls this directly
no test coverage detected