mirror of https://github.com/python/cpython.git
Hoist the global dummy lookup out of the inner loop for set_merge().
This commit is contained in:
parent
929cbac307
commit
5bb1b1dd6f
|
@ -683,6 +683,7 @@ set_merge(PySetObject *so, PyObject *otherset)
|
||||||
{
|
{
|
||||||
PySetObject *other;
|
PySetObject *other;
|
||||||
PyObject *key;
|
PyObject *key;
|
||||||
|
PyObject *dummy_entry;
|
||||||
Py_hash_t hash;
|
Py_hash_t hash;
|
||||||
Py_ssize_t i;
|
Py_ssize_t i;
|
||||||
setentry *entry;
|
setentry *entry;
|
||||||
|
@ -702,12 +703,13 @@ set_merge(PySetObject *so, PyObject *otherset)
|
||||||
if (set_table_resize(so, (so->used + other->used)*2) != 0)
|
if (set_table_resize(so, (so->used + other->used)*2) != 0)
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
dummy_entry = dummy;
|
||||||
for (i = 0; i <= other->mask; i++) {
|
for (i = 0; i <= other->mask; i++) {
|
||||||
entry = &other->table[i];
|
entry = &other->table[i];
|
||||||
key = entry->key;
|
key = entry->key;
|
||||||
hash = entry->hash;
|
hash = entry->hash;
|
||||||
if (key != NULL &&
|
if (key != NULL &&
|
||||||
key != dummy) {
|
key != dummy_entry) {
|
||||||
Py_INCREF(key);
|
Py_INCREF(key);
|
||||||
if (set_insert_key(so, key, hash) == -1) {
|
if (set_insert_key(so, key, hash) == -1) {
|
||||||
Py_DECREF(key);
|
Py_DECREF(key);
|
||||||
|
|
Loading…
Reference in New Issue