mirror of
https://github.com/python/cpython.git
synced 2025-10-06 07:02:33 +00:00
(cherry picked from commit b879fe82e7
)
This commit is contained in:
parent
ae0915e42d
commit
fa25f16a44
11 changed files with 47 additions and 45 deletions
|
@ -2343,10 +2343,11 @@ array_subscr(arrayobject* self, PyObject* item)
|
|||
arrayobject* ar;
|
||||
int itemsize = self->ob_descr->itemsize;
|
||||
|
||||
if (PySlice_GetIndicesEx(item, Py_SIZE(self),
|
||||
&start, &stop, &step, &slicelength) < 0) {
|
||||
if (PySlice_Unpack(item, &start, &stop, &step) < 0) {
|
||||
return NULL;
|
||||
}
|
||||
slicelength = PySlice_AdjustIndices(Py_SIZE(self), &start, &stop,
|
||||
step);
|
||||
|
||||
if (slicelength <= 0) {
|
||||
return newarrayobject(&Arraytype, 0, self->ob_descr);
|
||||
|
@ -2414,11 +2415,11 @@ array_ass_subscr(arrayobject* self, PyObject* item, PyObject* value)
|
|||
return (*self->ob_descr->setitem)(self, i, value);
|
||||
}
|
||||
else if (PySlice_Check(item)) {
|
||||
if (PySlice_GetIndicesEx(item,
|
||||
Py_SIZE(self), &start, &stop,
|
||||
&step, &slicelength) < 0) {
|
||||
if (PySlice_Unpack(item, &start, &stop, &step) < 0) {
|
||||
return -1;
|
||||
}
|
||||
slicelength = PySlice_AdjustIndices(Py_SIZE(self), &start, &stop,
|
||||
step);
|
||||
}
|
||||
else {
|
||||
PyErr_SetString(PyExc_TypeError,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue