diff options
author | Martin Wilke <miwi@FreeBSD.org> | 2008-09-11 08:05:23 +0000 |
---|---|---|
committer | Martin Wilke <miwi@FreeBSD.org> | 2008-09-11 08:05:23 +0000 |
commit | 5d6556dc39098800e88d6345d23bd810c72d0b39 (patch) | |
tree | e561cacf743e1c5aab98ca14014ecdcbdc988693 /lang/python24/files/patch-module_arraymodule.c | |
parent | f3cdc317d3fe779b5431573d55e128e02b93c460 (diff) | |
download | ports-5d6556dc39098800e88d6345d23bd810c72d0b39.tar.gz ports-5d6556dc39098800e88d6345d23bd810c72d0b39.zip |
Notes
Diffstat (limited to 'lang/python24/files/patch-module_arraymodule.c')
-rw-r--r-- | lang/python24/files/patch-module_arraymodule.c | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/lang/python24/files/patch-module_arraymodule.c b/lang/python24/files/patch-module_arraymodule.c new file mode 100644 index 000000000000..6dcfb467f619 --- /dev/null +++ b/lang/python24/files/patch-module_arraymodule.c @@ -0,0 +1,33 @@ +--- Modules/arraymodule.c.orig 2008-03-02 20:20:32.000000000 +0100 ++++ Modules/arraymodule.c +@@ -814,6 +814,7 @@ static int + array_do_extend(arrayobject *self, PyObject *bb) + { + int size; ++ char *old_item; + + if (!array_Check(bb)) + return array_iter_extend(self, bb); +@@ -829,10 +830,11 @@ array_do_extend(arrayobject *self, PyObj + return -1; + } + size = self->ob_size + b->ob_size; ++ old_item = self->ob_item; + PyMem_RESIZE(self->ob_item, char, size*self->ob_descr->itemsize); + if (self->ob_item == NULL) { +- PyObject_Del(self); +- PyErr_NoMemory(); ++ self->ob_item = old_item; ++ PyErr_NoMemory(); + return -1; + } + memcpy(self->ob_item + self->ob_size*self->ob_descr->itemsize, +@@ -884,7 +886,7 @@ array_inplace_repeat(arrayobject *self, + if (size > INT_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; |