summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRaymond Hettinger <python@rcn.com>2015-01-18 21:25:15 -0800
committerRaymond Hettinger <python@rcn.com>2015-01-18 21:25:15 -0800
commited741d4ff0e79c89ba77906eb9417025c3935c71 (patch)
tree92d479b8870ba43d59cfc723c14f25a90027bc6b
parentbd9b200b872c2345c84af4fd98f5d0c8b674cc58 (diff)
downloadcpython-git-ed741d4ff0e79c89ba77906eb9417025c3935c71.tar.gz
A hybrid of and-masking and a conditional-set-to-zero produce even faster search loop.
-rw-r--r--Objects/setobject.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/Objects/setobject.c b/Objects/setobject.c
index f865d1c5f9..ddf6822519 100644
--- a/Objects/setobject.c
+++ b/Objects/setobject.c
@@ -671,7 +671,8 @@ set_pop(PySetObject *so)
while ((entry = &so->table[i])->key == NULL || entry->key==dummy) {
i++;
- i &= so->mask;
+ if (i > so->mask)
+ i = 0;
}
key = entry->key;
entry->key = dummy;