From 5bb1b1dd6f94af0e8cb2d4a1686bc4882147ba66 Mon Sep 17 00:00:00 2001 From: Raymond Hettinger Date: Wed, 21 Aug 2013 01:34:18 -0700 Subject: [PATCH] Hoist the global dummy lookup out of the inner loop for set_merge(). --- Objects/setobject.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Objects/setobject.c b/Objects/setobject.c index 9074a76125f..f84c929a47a 100644 --- a/Objects/setobject.c +++ b/Objects/setobject.c @@ -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);