MCPcopy Create free account
hub / github.com/OpenDriveLab/OpenLane / __Pyx_GetItemInt_Fast

Function __Pyx_GetItemInt_Fast

eval/CIPO_evaluation/pycocotools/_mask.c:11701–11742  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

11699#endif
11700}
11701static 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 */
11745static CYTHON_INLINE int __Pyx_Is_Little_Endian(void)

Callers

nothing calls this directly

Calls 2

__Pyx_is_valid_indexFunction · 0.85
__Pyx_GetItemInt_GenericFunction · 0.85

Tested by

no test coverage detected