]> granicus.if.org Git - python/commitdiff
SF #561244 Micro optimizations
authorNeal Norwitz <nnorwitz@gmail.com>
Thu, 13 Jun 2002 21:11:11 +0000 (21:11 +0000)
committerNeal Norwitz <nnorwitz@gmail.com>
Thu, 13 Jun 2002 21:11:11 +0000 (21:11 +0000)
Convert loops to memset()s.

Modules/_sre.c
Objects/listobject.c
Objects/tupleobject.c

index b98f6e69a94a40d62601a38a2394f87559e26709..839763dc722e66a8cc0febd851b60903e43b5ebc 100644 (file)
@@ -1376,13 +1376,10 @@ sre_getlower(PyObject* self, PyObject* args)
 LOCAL(void)
 state_reset(SRE_STATE* state)
 {
-    int i;
-
     state->lastmark = 0;
 
     /* FIXME: dynamic! */
-    for (i = 0; i < SRE_MARK_SIZE; i++)
-        state->mark[i] = NULL;
+    memset(state->mark, 0, sizeof(*state->mark) * SRE_MARK_SIZE);
 
     state->lastindex = -1;
 
index f29774e49607f2e089e4a80250ba083457f2f287..78cc6796ab195e3cf6621503e610b020471b2e3d 100644 (file)
@@ -56,7 +56,6 @@ do {                                                          \
 PyObject *
 PyList_New(int size)
 {
-       int i;
        PyListObject *op;
        size_t nbytes;
        if (size < 0) {
@@ -80,10 +79,9 @@ PyList_New(int size)
                if (op->ob_item == NULL) {
                        return PyErr_NoMemory();
                }
+               memset(op->ob_item, 0, sizeof(*op->ob_item) * size);
        }
        op->ob_size = size;
-       for (i = 0; i < size; i++)
-               op->ob_item[i] = NULL;
        _PyObject_GC_TRACK(op);
        return (PyObject *) op;
 }
@@ -1576,8 +1574,7 @@ list_fill(PyListObject *result, PyObject *v)
                PyErr_NoMemory();
                goto error;
        }
-       for (i = 0; i < n; i++)
-               result->ob_item[i] = NULL;
+       memset(result->ob_item, 0, sizeof(*result->ob_item) * n);
        result->ob_size = n;
 
        /* Run iterator to exhaustion. */
index a2071024485e8a730d80b802c276fdebceb5bcfa..525e8f6e63c78b8eee11d01625db24b3885a84c6 100644 (file)
@@ -26,7 +26,6 @@ int tuple_zero_allocs;
 PyObject *
 PyTuple_New(register int size)
 {
-       register int i;
        register PyTupleObject *op;
        if (size < 0) {
                PyErr_BadInternalCall();
@@ -71,8 +70,7 @@ PyTuple_New(register int size)
                if (op == NULL)
                        return NULL;
        }
-       for (i = 0; i < size; i++)
-               op->ob_item[i] = NULL;
+       memset(op->ob_item, 0, sizeof(*op->ob_item) * size);
 #if MAXSAVESIZE > 0
        if (size == 0) {
                free_tuples[0] = op;
@@ -697,8 +695,9 @@ _PyTuple_Resize(PyObject **pv, int newsize)
        }
        _Py_NewReference((PyObject *) sv);
        /* Zero out items added by growing */
-       for (i = oldsize; i < newsize; i++)
-               sv->ob_item[i] = NULL;
+       if (newsize > oldsize)
+               memset(sv->ob_item, 0,
+                       sizeof(*sv->ob_item) * (newsize - oldsize));
        *pv = (PyObject *) sv;
        _PyObject_GC_TRACK(sv);
        return 0;