summaryrefslogtreecommitdiff
path: root/Objects/setobject.c
diff options
context:
space:
mode:
authorRaymond Hettinger <python@rcn.com>2015-07-05 16:27:44 -0700
committerRaymond Hettinger <python@rcn.com>2015-07-05 16:27:44 -0700
commit10801a22f7b816d3dadde28076facbcd585f1a24 (patch)
tree5773ade7a83e6f0546952e55792610669414e7a8 /Objects/setobject.c
parentc0035df32d9280dea43c581624dc8da43fa4533b (diff)
downloadcpython-10801a22f7b816d3dadde28076facbcd585f1a24.tar.gz
Bring related functions add/contains/discard together in the code.
Diffstat (limited to 'Objects/setobject.c')
-rw-r--r--Objects/setobject.c74
1 files changed, 34 insertions, 40 deletions
diff --git a/Objects/setobject.c b/Objects/setobject.c
index fd10008cf1..307f19ef0f 100644
--- a/Objects/setobject.c
+++ b/Objects/setobject.c
@@ -366,17 +366,14 @@ set_table_resize(PySetObject *so, Py_ssize_t minused)
}
static int
-set_add_key(PySetObject *so, PyObject *key)
+set_contains_entry(PySetObject *so, PyObject *key, Py_hash_t hash)
{
- Py_hash_t hash;
+ setentry *entry;
- if (!PyUnicode_CheckExact(key) ||
- (hash = ((PyASCIIObject *) key)->hash) == -1) {
- hash = PyObject_Hash(key);
- if (hash == -1)
- return -1;
- }
- return set_add_entry(so, key, hash);
+ entry = set_lookkey(so, key, hash);
+ if (entry != NULL)
+ return entry->key != NULL;
+ return -1;
}
#define DISCARD_NOTFOUND 0
@@ -402,11 +399,37 @@ set_discard_entry(PySetObject *so, PyObject *key, Py_hash_t hash)
}
static int
-set_discard_key(PySetObject *so, PyObject *key)
+set_add_key(PySetObject *so, PyObject *key)
{
Py_hash_t hash;
- assert (PyAnySet_Check(so));
+ if (!PyUnicode_CheckExact(key) ||
+ (hash = ((PyASCIIObject *) key)->hash) == -1) {
+ hash = PyObject_Hash(key);
+ if (hash == -1)
+ return -1;
+ }
+ return set_add_entry(so, key, hash);
+}
+
+static int
+set_contains_key(PySetObject *so, PyObject *key)
+{
+ Py_hash_t hash;
+
+ if (!PyUnicode_CheckExact(key) ||
+ (hash = ((PyASCIIObject *) key)->hash) == -1) {
+ hash = PyObject_Hash(key);
+ if (hash == -1)
+ return -1;
+ }
+ return set_contains_entry(so, key, hash);
+}
+
+static int
+set_discard_key(PySetObject *so, PyObject *key)
+{
+ Py_hash_t hash;
if (!PyUnicode_CheckExact(key) ||
(hash = ((PyASCIIObject *) key)->hash) == -1) {
@@ -653,35 +676,6 @@ set_merge(PySetObject *so, PyObject *otherset)
return 0;
}
-static int
-set_contains_entry(PySetObject *so, PyObject *key, Py_hash_t hash)
-{
- setentry *lu_entry;
-
- lu_entry = set_lookkey(so, key, hash);
- if (lu_entry != NULL)
- return lu_entry->key != NULL;
- return -1;
-}
-
-static int
-set_contains_key(PySetObject *so, PyObject *key)
-{
- setentry *entry;
- Py_hash_t hash;
-
- if (!PyUnicode_CheckExact(key) ||
- (hash = ((PyASCIIObject *) key)->hash) == -1) {
- hash = PyObject_Hash(key);
- if (hash == -1)
- return -1;
- }
- entry = set_lookkey(so, key, hash);
- if (entry == NULL)
- return -1;
- return entry->key != NULL;
-}
-
static PyObject *
set_pop(PySetObject *so)
{