]> granicus.if.org Git - python/commitdiff
Revert last change. Found an application that was worse off with resize
authorRaymond Hettinger <python@rcn.com>
Mon, 15 Mar 2004 09:01:31 +0000 (09:01 +0000)
committerRaymond Hettinger <python@rcn.com>
Mon, 15 Mar 2004 09:01:31 +0000 (09:01 +0000)
exact turned on.  The tiny space savings wasn't worth the additional time
and code.

Objects/listobject.c

index c8a819018718354f93530be890d1e6b731b5a552..3bda2453038b935572bdf84ad779576e9dd57ac9 100644 (file)
@@ -9,7 +9,7 @@
 #endif
 
 static int
-list_resize(PyListObject *self, int newsize, int exact)
+list_resize(PyListObject *self, int newsize)
 {
        PyObject **items;
        size_t _new_size;
@@ -33,10 +33,7 @@ list_resize(PyListObject *self, int newsize, int exact)
         * system realloc().
         * The growth pattern is:  0, 4, 8, 16, 25, 35, 46, 58, 72, 88, ...
         */
-       if (exact)
-               _new_size = newsize;
-       else
-               _new_size = (newsize>>3) + (self->ob_size < 8 ? 3 : 6) + newsize;
+       _new_size = (newsize >> 3) + (self->ob_size < 8 ? 3 : 6) + newsize;
        items = self->ob_item;
        if (_new_size <= ((~(size_t)0) / sizeof(PyObject *)))
                PyMem_RESIZE(items, PyObject *, _new_size);
@@ -155,7 +152,7 @@ ins1(PyListObject *self, int where, PyObject *v)
                return -1;
        }
        
-       if (list_resize(self, n+1, 0) == -1)
+       if (list_resize(self, n+1) == -1)
                return -1;
 
        if (where < 0) {
@@ -521,13 +518,13 @@ list_ass_slice(PyListObject *a, int ilow, int ihigh, PyObject *v)
                if (d < 0) {
                        memmove(&item[ihigh+d], &item[ihigh], 
                                (a->ob_size - ihigh)*sizeof(PyObject *));
-                       list_resize(a, a->ob_size + d, 1);
+                       list_resize(a, a->ob_size + d);
                        item = a->ob_item;
                }
        }
        else { /* Insert d items; recycle ihigh-ilow items */
                s = a->ob_size;
-               if (list_resize(a, s+d, 1) == -1) {
+               if (list_resize(a, s+d) == -1) {
                        if (recycle != NULL)
                                PyMem_DEL(recycle);
                        return -1;
@@ -591,7 +588,7 @@ list_inplace_repeat(PyListObject *self, int n)
                return (PyObject *)self;
        }
 
-       if (list_resize(self, size*n, 1) == -1) 
+       if (list_resize(self, size*n) == -1) 
                return NULL;
 
        p = size;
@@ -683,7 +680,7 @@ listextend_internal(PyListObject *self, PyObject *b)
                }
        }
 
-       if (list_resize(self, selflen + blen, 0) == -1) {
+       if (list_resize(self, selflen + blen) == -1) {
                Py_DECREF(b);
                return -1;
        }
@@ -736,7 +733,7 @@ listextend(PyListObject *self, PyObject *b)
        }
        m = self->ob_size;
        mn = m + n;
-       if (list_resize(self, mn, 0) == -1)
+       if (list_resize(self, mn) == -1)
                goto error;
        memset(&(self->ob_item[m]), 0, sizeof(*self->ob_item) * n);
 
@@ -821,7 +818,7 @@ listpop(PyListObject *self, PyObject *args)
        }
        v = self->ob_item[i];
        if (i == self->ob_size - 1) {
-               if (list_resize(self, self->ob_size - 1, 0) == -1)
+               if (list_resize(self, self->ob_size - 1) == -1)
                        return NULL;
                return v;
        }
@@ -2520,7 +2517,7 @@ list_ass_subscript(PyListObject* self, PyObject* item, PyObject* value)
                        }
 
                        self->ob_size -= slicelength;
-                       list_resize(self, self->ob_size, 1);
+                       list_resize(self, self->ob_size);
 
                        for (i = 0; i < slicelength; i++) {
                                Py_DECREF(garbage[i]);