mirror of https://github.com/python/cpython
bpo-34397: Remove redundant overflow checks in list and tuple implementation. (GH-8757)
This commit is contained in:
parent
ef16958d17
commit
e682b26a6b
|
@ -261,12 +261,8 @@ ins1(PyListObject *self, Py_ssize_t where, PyObject *v)
|
||||||
PyErr_BadInternalCall();
|
PyErr_BadInternalCall();
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
if (n == PY_SSIZE_T_MAX) {
|
|
||||||
PyErr_SetString(PyExc_OverflowError,
|
|
||||||
"cannot add more objects to list");
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
assert((size_t)n + 1 < PY_SSIZE_T_MAX);
|
||||||
if (list_resize(self, n+1) < 0)
|
if (list_resize(self, n+1) < 0)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
|
@ -301,12 +297,7 @@ app1(PyListObject *self, PyObject *v)
|
||||||
Py_ssize_t n = PyList_GET_SIZE(self);
|
Py_ssize_t n = PyList_GET_SIZE(self);
|
||||||
|
|
||||||
assert (v != NULL);
|
assert (v != NULL);
|
||||||
if (n == PY_SSIZE_T_MAX) {
|
assert((size_t)n + 1 < PY_SSIZE_T_MAX);
|
||||||
PyErr_SetString(PyExc_OverflowError,
|
|
||||||
"cannot add more objects to list");
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (list_resize(self, n+1) < 0)
|
if (list_resize(self, n+1) < 0)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
|
@ -503,8 +494,7 @@ list_concat(PyListObject *a, PyObject *bb)
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
#define b ((PyListObject *)bb)
|
#define b ((PyListObject *)bb)
|
||||||
if (Py_SIZE(a) > PY_SSIZE_T_MAX - Py_SIZE(b))
|
assert((size_t)Py_SIZE(a) + (size_t)Py_SIZE(b) < PY_SSIZE_T_MAX);
|
||||||
return PyErr_NoMemory();
|
|
||||||
size = Py_SIZE(a) + Py_SIZE(b);
|
size = Py_SIZE(a) + Py_SIZE(b);
|
||||||
np = (PyListObject *) list_new_prealloc(size);
|
np = (PyListObject *) list_new_prealloc(size);
|
||||||
if (np == NULL) {
|
if (np == NULL) {
|
||||||
|
|
|
@ -486,8 +486,7 @@ tupleconcat(PyTupleObject *a, PyObject *bb)
|
||||||
Py_INCREF(a);
|
Py_INCREF(a);
|
||||||
return (PyObject *)a;
|
return (PyObject *)a;
|
||||||
}
|
}
|
||||||
if (Py_SIZE(a) > PY_SSIZE_T_MAX - Py_SIZE(b))
|
assert((size_t)Py_SIZE(a) + (size_t)Py_SIZE(b) < PY_SSIZE_T_MAX);
|
||||||
return PyErr_NoMemory();
|
|
||||||
size = Py_SIZE(a) + Py_SIZE(b);
|
size = Py_SIZE(a) + Py_SIZE(b);
|
||||||
if (size == 0) {
|
if (size == 0) {
|
||||||
return PyTuple_New(0);
|
return PyTuple_New(0);
|
||||||
|
|
Loading…
Reference in New Issue