aboutsummaryrefslogtreecommitdiff
path: root/lang/python24/files/patch-module_arraymodule.c
diff options
context:
space:
mode:
authorMartin Wilke <miwi@FreeBSD.org>2008-09-11 08:05:23 +0000
committerMartin Wilke <miwi@FreeBSD.org>2008-09-11 08:05:23 +0000
commit5d6556dc39098800e88d6345d23bd810c72d0b39 (patch)
treee561cacf743e1c5aab98ca14014ecdcbdc988693 /lang/python24/files/patch-module_arraymodule.c
parentf3cdc317d3fe779b5431573d55e128e02b93c460 (diff)
downloadports-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.c33
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;