]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
Hoist the global dummy lookup out of the inner loop for set_merge().
authorRaymond Hettinger <python@rcn.com>
Wed, 21 Aug 2013 08:34:18 +0000 (01:34 -0700)
committerRaymond Hettinger <python@rcn.com>
Wed, 21 Aug 2013 08:34:18 +0000 (01:34 -0700)
Objects/setobject.c

index 9074a76125f876ec61efb0b2dd9dc784eff16d45..f84c929a47a9249ef3eadea828c6ad0a760fec12 100644 (file)
@@ -683,6 +683,7 @@ set_merge(PySetObject *so, PyObject *otherset)
 {
     PySetObject *other;
     PyObject *key;
+    PyObject *dummy_entry;
     Py_hash_t hash;
     Py_ssize_t i;
     setentry *entry;
@@ -702,12 +703,13 @@ set_merge(PySetObject *so, PyObject *otherset)
        if (set_table_resize(so, (so->used + other->used)*2) != 0)
            return -1;
     }
+    dummy_entry = dummy;
     for (i = 0; i <= other->mask; i++) {
         entry = &other->table[i];
         key = entry->key;
         hash = entry->hash;
         if (key != NULL &&
-            key != dummy) {
+            key != dummy_entry) {
             Py_INCREF(key);
             if (set_insert_key(so, key, hash) == -1) {
                 Py_DECREF(key);