| Index: Modules/arraymodule.c |
| =================================================================== |
| --- Modules/arraymodule.c (revision 64754) |
| +++ Modules/arraymodule.c (working copy) |
| @@ -815,6 +815,7 @@ |
| array_do_extend(arrayobject *self, PyObject *bb) |
| { |
| Py_ssize_t size; |
| + char *old_item; |
| if (!array_Check(bb)) |
| return array_iter_extend(self, bb); |
| @@ -830,8 +831,10 @@ |
| return -1; |
| } |
| size = Py_SIZE(self) + Py_SIZE(b); |
| + old_item = self->ob_item; |
| PyMem_RESIZE(self->ob_item, char, size*self->ob_descr->itemsize); |
| if (self->ob_item == NULL) { |
| + self->ob_item = old_item; |
| PyErr_NoMemory(); |
| return -1; |
| } |
| @@ -884,7 +887,7 @@ |
| if (size > PY_SSIZE_T_MAX / n) { |
| return PyErr_NoMemory(); |
| } |
| - PyMem_Resize(items, char, n * size); |
| + PyMem_RESIZE(items, char, n * size); |
| if (items == NULL) |
| return PyErr_NoMemory(); |
| p = items; |