Add PySequence_Fast_GetItemRef() and PyList_GetItemRef() · pythoncapi/cpython@e0889e9 · GitHub
Skip to content

Commit e0889e9

Browse files
committed
Add PySequence_Fast_GetItemRef() and PyList_GetItemRef()
Add PySequence_Fast_GetItemRef(), PyStructSequence_SetItemRef(), PyList_GetItemRef(). Add again Py_TYPE().
1 parent 48c30fd commit e0889e9

39 files changed

Lines changed: 771 additions & 389 deletions

Include/abstract.h

Lines changed: 2 additions & 0 deletions

Include/listobject.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ PyAPI_DATA(PyTypeObject) PySortWrapper_Type;
5252
PyAPI_FUNC(PyObject *) PyList_New(Py_ssize_t size);
5353
PyAPI_FUNC(Py_ssize_t) PyList_Size(PyObject *);
5454
PyAPI_FUNC(PyObject *) PyList_GetItem(PyObject *, Py_ssize_t);
55+
PyAPI_FUNC(PyObject *) PyList_GetItemRef(PyObject *, Py_ssize_t);
5556
PyAPI_FUNC(int) PyList_SetItem(PyObject *, Py_ssize_t, PyObject *);
5657
PyAPI_FUNC(int) PyList_Insert(PyObject *, Py_ssize_t, PyObject *);
5758
PyAPI_FUNC(int) PyList_Append(PyObject *, PyObject *);

Include/object.h

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -455,10 +455,8 @@ typedef struct _typeobject {
455455
do { _Py_TYPE(ob) = (type); } while (0)
456456

457457
#ifdef Py_NEWCAPI_NO_STRUCT
458-
#ifdef Py_NEWCAPI_BORROWED_REF
459458
PyAPI_FUNC(PyTypeObject*) _Py_TYPE_impl(PyObject *op);
460459
#define Py_TYPE(ob) _Py_TYPE_impl((PyObject *)(ob))
461-
#endif
462460
#else
463461
#define Py_TYPE(ob) _Py_TYPE(ob)
464462
#endif

Include/structseq.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ typedef PyTupleObject PyStructSequence;
3636

3737
/* Macro, *only* to be used to fill in brand new objects */
3838
#define PyStructSequence_SET_ITEM(op, i, v) PyTuple_SET_ITEM(op, i, v)
39+
#define PyStructSequence_SetItemRef(op, i, v) PyTuple_SetItemRef(op, i, v)
3940

4041
#define PyStructSequence_GET_ITEM(op, i) PyTuple_GET_ITEM(op, i)
4142
#endif

Modules/_asynciomodule.c

Lines changed: 18 additions & 14 deletions

0 commit comments

Comments
 (0)