Skip to content

Commit

Permalink
bpo-29867: Add asserts in PyTuple_GET_SIZE, PyList_GET_SIZE and PySet…
Browse files Browse the repository at this point in the history
…_GET_SIZE. (python#751)
  • Loading branch information
serhiy-storchaka authored and vstinner committed Apr 21, 2017
1 parent a36e939 commit 1a5856b
Show file tree
Hide file tree
Showing 4 changed files with 4 additions and 4 deletions.
2 changes: 1 addition & 1 deletion Include/listobject.h
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ PyAPI_FUNC(void) _PyList_DebugMallocStats(FILE *out);
#ifndef Py_LIMITED_API
#define PyList_GET_ITEM(op, i) (((PyListObject *)(op))->ob_item[i])
#define PyList_SET_ITEM(op, i, v) (((PyListObject *)(op))->ob_item[i] = (v))
#define PyList_GET_SIZE(op) Py_SIZE(op)
#define PyList_GET_SIZE(op) (assert(PyList_Check(op)),Py_SIZE(op))
#define _PyList_ITEMS(op) (((PyListObject *)(op))->ob_item)
#endif

Expand Down
2 changes: 1 addition & 1 deletion Include/setobject.h
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ typedef struct {
PyObject *weakreflist; /* List of weak references */
} PySetObject;

#define PySet_GET_SIZE(so) (((PySetObject *)(so))->used)
#define PySet_GET_SIZE(so) (assert(PyAnySet_Check(so)),(((PySetObject *)(so))->used))

PyAPI_DATA(PyObject *) _PySet_Dummy;

Expand Down
2 changes: 1 addition & 1 deletion Include/tupleobject.h
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ PyAPI_FUNC(void) _PyTuple_MaybeUntrack(PyObject *);
/* Macro, trading safety for speed */
#ifndef Py_LIMITED_API
#define PyTuple_GET_ITEM(op, i) (((PyTupleObject *)(op))->ob_item[i])
#define PyTuple_GET_SIZE(op) Py_SIZE(op)
#define PyTuple_GET_SIZE(op) (assert(PyTuple_Check(op)),Py_SIZE(op))

/* Macro, *only* to be used to fill in brand new tuples */
#define PyTuple_SET_ITEM(op, i, v) (((PyTupleObject *)(op))->ob_item[i] = v)
Expand Down
2 changes: 1 addition & 1 deletion Objects/odictobject.c
Original file line number Diff line number Diff line change
Expand Up @@ -1519,7 +1519,7 @@ odict_repr(PyODictObject *self)
count++;
}
if (count < PyList_GET_SIZE(pieces))
PyList_GET_SIZE(pieces) = count;
Py_SIZE(pieces) = count;
}
else {
PyObject *items = _PyObject_CallMethodIdObjArgs((PyObject *)self,
Expand Down

0 comments on commit 1a5856b

Please sign in to comment.