Improve variable names.

This commit is contained in:
Raymond Hettinger 2005-07-31 15:36:06 +00:00
parent 9dcb17cb1a
commit 06d8cf8ceb

View file

@ -42,8 +42,8 @@ set_lookkey(PySetObject *so, PyObject *key, register long hash)
register unsigned int perturb; register unsigned int perturb;
register setentry *freeslot; register setentry *freeslot;
register unsigned int mask = so->mask; register unsigned int mask = so->mask;
setentry *ep0 = so->table; setentry *entry0 = so->table;
register setentry *ep; register setentry *entry;
register int restore_error; register int restore_error;
register int checked_error; register int checked_error;
register int cmp; register int cmp;
@ -51,26 +51,26 @@ set_lookkey(PySetObject *so, PyObject *key, register long hash)
PyObject *startkey; PyObject *startkey;
i = hash & mask; i = hash & mask;
ep = &ep0[i]; entry = &entry0[i];
if (ep->key == NULL || ep->key == key) if (entry->key == NULL || entry->key == key)
return ep; return entry;
restore_error = checked_error = 0; restore_error = checked_error = 0;
if (ep->key == dummy) if (entry->key == dummy)
freeslot = ep; freeslot = entry;
else { else {
if (ep->hash == hash) { if (entry->hash == hash) {
/* error can't have been checked yet */ /* error can't have been checked yet */
checked_error = 1; checked_error = 1;
if (PyErr_Occurred()) { if (PyErr_Occurred()) {
restore_error = 1; restore_error = 1;
PyErr_Fetch(&err_type, &err_value, &err_tb); PyErr_Fetch(&err_type, &err_value, &err_tb);
} }
startkey = ep->key; startkey = entry->key;
cmp = PyObject_RichCompareBool(startkey, key, Py_EQ); cmp = PyObject_RichCompareBool(startkey, key, Py_EQ);
if (cmp < 0) if (cmp < 0)
PyErr_Clear(); PyErr_Clear();
if (ep0 == so->table && ep->key == startkey) { if (entry0 == so->table && entry->key == startkey) {
if (cmp > 0) if (cmp > 0)
goto Done; goto Done;
} }
@ -78,7 +78,7 @@ set_lookkey(PySetObject *so, PyObject *key, register long hash)
/* The compare did major nasty stuff to the /* The compare did major nasty stuff to the
* set: start over. * set: start over.
*/ */
ep = set_lookkey(so, key, hash); entry = set_lookkey(so, key, hash);
goto Done; goto Done;
} }
} }
@ -89,15 +89,15 @@ set_lookkey(PySetObject *so, PyObject *key, register long hash)
least likely outcome, so test for that last. */ least likely outcome, so test for that last. */
for (perturb = hash; ; perturb >>= PERTURB_SHIFT) { for (perturb = hash; ; perturb >>= PERTURB_SHIFT) {
i = (i << 2) + i + perturb + 1; i = (i << 2) + i + perturb + 1;
ep = &ep0[i & mask]; entry = &entry0[i & mask];
if (ep->key == NULL) { if (entry->key == NULL) {
if (freeslot != NULL) if (freeslot != NULL)
ep = freeslot; entry = freeslot;
break; break;
} }
if (ep->key == key) if (entry->key == key)
break; break;
if (ep->hash == hash && ep->key != dummy) { if (entry->hash == hash && entry->key != dummy) {
if (!checked_error) { if (!checked_error) {
checked_error = 1; checked_error = 1;
if (PyErr_Occurred()) { if (PyErr_Occurred()) {
@ -106,11 +106,11 @@ set_lookkey(PySetObject *so, PyObject *key, register long hash)
&err_tb); &err_tb);
} }
} }
startkey = ep->key; startkey = entry->key;
cmp = PyObject_RichCompareBool(startkey, key, Py_EQ); cmp = PyObject_RichCompareBool(startkey, key, Py_EQ);
if (cmp < 0) if (cmp < 0)
PyErr_Clear(); PyErr_Clear();
if (ep0 == so->table && ep->key == startkey) { if (entry0 == so->table && entry->key == startkey) {
if (cmp > 0) if (cmp > 0)
break; break;
} }
@ -118,18 +118,18 @@ set_lookkey(PySetObject *so, PyObject *key, register long hash)
/* The compare did major nasty stuff to the /* The compare did major nasty stuff to the
* set: start over. * set: start over.
*/ */
ep = set_lookkey(so, key, hash); entry = set_lookkey(so, key, hash);
break; break;
} }
} }
else if (ep->key == dummy && freeslot == NULL) else if (entry->key == dummy && freeslot == NULL)
freeslot = ep; freeslot = entry;
} }
Done: Done:
if (restore_error) if (restore_error)
PyErr_Restore(err_type, err_value, err_tb); PyErr_Restore(err_type, err_value, err_tb);
return ep; return entry;
} }
/* /*
@ -149,8 +149,8 @@ set_lookkey_string(PySetObject *so, PyObject *key, register long hash)
register unsigned int perturb; register unsigned int perturb;
register setentry *freeslot; register setentry *freeslot;
register unsigned int mask = so->mask; register unsigned int mask = so->mask;
setentry *ep0 = so->table; setentry *entry0 = so->table;
register setentry *ep; register setentry *entry;
/* Make sure this function doesn't have to handle non-string keys, /* Make sure this function doesn't have to handle non-string keys,
including subclasses of str; e.g., one reason to subclass including subclasses of str; e.g., one reason to subclass
@ -161,14 +161,14 @@ set_lookkey_string(PySetObject *so, PyObject *key, register long hash)
return set_lookkey(so, key, hash); return set_lookkey(so, key, hash);
} }
i = hash & mask; i = hash & mask;
ep = &ep0[i]; entry = &entry0[i];
if (ep->key == NULL || ep->key == key) if (entry->key == NULL || entry->key == key)
return ep; return entry;
if (ep->key == dummy) if (entry->key == dummy)
freeslot = ep; freeslot = entry;
else { else {
if (ep->hash == hash && _PyString_Eq(ep->key, key)) if (entry->hash == hash && _PyString_Eq(entry->key, key))
return ep; return entry;
freeslot = NULL; freeslot = NULL;
} }
@ -176,43 +176,43 @@ set_lookkey_string(PySetObject *so, PyObject *key, register long hash)
least likely outcome, so test for that last. */ least likely outcome, so test for that last. */
for (perturb = hash; ; perturb >>= PERTURB_SHIFT) { for (perturb = hash; ; perturb >>= PERTURB_SHIFT) {
i = (i << 2) + i + perturb + 1; i = (i << 2) + i + perturb + 1;
ep = &ep0[i & mask]; entry = &entry0[i & mask];
if (ep->key == NULL) if (entry->key == NULL)
return freeslot == NULL ? ep : freeslot; return freeslot == NULL ? entry : freeslot;
if (ep->key == key if (entry->key == key
|| (ep->hash == hash || (entry->hash == hash
&& ep->key != dummy && entry->key != dummy
&& _PyString_Eq(ep->key, key))) && _PyString_Eq(entry->key, key)))
return ep; return entry;
if (ep->key == dummy && freeslot == NULL) if (entry->key == dummy && freeslot == NULL)
freeslot = ep; freeslot = entry;
} }
} }
/* /*
Internal routine to insert a new item into the table. Internal routine to insert a new key into the table.
Used both by the internal resize routine and by the public insert routine. Used both by the internal resize routine and by the public insert routine.
Eats a reference to key. Eats a reference to key.
*/ */
static void static void
set_insert_key(register PySetObject *so, PyObject *key, long hash) set_insert_key(register PySetObject *so, PyObject *key, long hash)
{ {
register setentry *ep; register setentry *entry;
typedef setentry *(*lookupfunc)(PySetObject *, PyObject *, long); typedef setentry *(*lookupfunc)(PySetObject *, PyObject *, long);
assert(so->lookup != NULL); assert(so->lookup != NULL);
ep = so->lookup(so, key, hash); entry = so->lookup(so, key, hash);
if (ep->key == NULL) { if (entry->key == NULL) {
/* UNUSED */ /* UNUSED */
so->fill++; so->fill++;
ep->key = key; entry->key = key;
ep->hash = hash; entry->hash = hash;
so->used++; so->used++;
} else if (ep->key == dummy) { } else if (entry->key == dummy) {
/* DUMMY */ /* DUMMY */
ep->key = key; entry->key = key;
ep->hash = hash; entry->hash = hash;
so->used++; so->used++;
Py_DECREF(dummy); Py_DECREF(dummy);
} else { } else {
@ -223,14 +223,14 @@ set_insert_key(register PySetObject *so, PyObject *key, long hash)
/* /*
Restructure the table by allocating a new table and reinserting all Restructure the table by allocating a new table and reinserting all
items again. When entries have been deleted, the new table may keys again. When entries have been deleted, the new table may
actually be smaller than the old one. actually be smaller than the old one.
*/ */
static int static int
set_table_resize(PySetObject *so, int minused) set_table_resize(PySetObject *so, int minused)
{ {
int newsize; int newsize;
setentry *oldtable, *newtable, *ep; setentry *oldtable, *newtable, *entry;
int i; int i;
int is_oldtable_malloced; int is_oldtable_malloced;
setentry small_copy[PySet_MINSIZE]; setentry small_copy[PySet_MINSIZE];
@ -290,19 +290,19 @@ set_table_resize(PySetObject *so, int minused)
/* Copy the data over; this is refcount-neutral for active entries; /* Copy the data over; this is refcount-neutral for active entries;
dummy entries aren't copied over, of course */ dummy entries aren't copied over, of course */
for (ep = oldtable; i > 0; ep++) { for (entry = oldtable; i > 0; entry++) {
if (ep->key == NULL) { if (entry->key == NULL) {
/* UNUSED */ /* UNUSED */
; ;
} else if (ep->key == dummy) { } else if (entry->key == dummy) {
/* DUMMY */ /* DUMMY */
--i; --i;
assert(ep->key == dummy); assert(entry->key == dummy);
Py_DECREF(ep->key); Py_DECREF(entry->key);
} else { } else {
/* ACTIVE */ /* ACTIVE */
--i; --i;
set_insert_key(so, ep->key, ep->hash); set_insert_key(so, entry->key, entry->hash);
} }
} }
@ -346,7 +346,7 @@ static int
set_discard_internal(PySetObject *so, PyObject *key) set_discard_internal(PySetObject *so, PyObject *key)
{ {
register long hash; register long hash;
register setentry *ep; register setentry *entry;
PyObject *old_key; PyObject *old_key;
assert (PyAnySet_Check(so)); assert (PyAnySet_Check(so));
@ -356,12 +356,12 @@ set_discard_internal(PySetObject *so, PyObject *key)
if (hash == -1) if (hash == -1)
return -1; return -1;
} }
ep = (so->lookup)(so, key, hash); entry = (so->lookup)(so, key, hash);
if (ep->key == NULL || ep->key == dummy) if (entry->key == NULL || entry->key == dummy)
return DISCARD_NOTFOUND; return DISCARD_NOTFOUND;
old_key = ep->key; old_key = entry->key;
Py_INCREF(dummy); Py_INCREF(dummy);
ep->key = dummy; entry->key = dummy;
so->used--; so->used--;
Py_DECREF(old_key); Py_DECREF(old_key);
return DISCARD_FOUND; return DISCARD_FOUND;
@ -370,7 +370,7 @@ set_discard_internal(PySetObject *so, PyObject *key)
static void static void
set_clear_internal(PySetObject *so) set_clear_internal(PySetObject *so)
{ {
setentry *ep, *table; setentry *entry, *table;
int table_is_malloced; int table_is_malloced;
int fill; int fill;
setentry small_copy[PySet_MINSIZE]; setentry small_copy[PySet_MINSIZE];
@ -413,18 +413,18 @@ set_clear_internal(PySetObject *so)
* assert that the refcount on table is 1 now, i.e. that this function * assert that the refcount on table is 1 now, i.e. that this function
* has unique access to it, so decref side-effects can't alter it. * has unique access to it, so decref side-effects can't alter it.
*/ */
for (ep = table; fill > 0; ++ep) { for (entry = table; fill > 0; ++entry) {
#ifdef Py_DEBUG #ifdef Py_DEBUG
assert(i < n); assert(i < n);
++i; ++i;
#endif #endif
if (ep->key) { if (entry->key) {
--fill; --fill;
Py_DECREF(ep->key); Py_DECREF(entry->key);
} }
#ifdef Py_DEBUG #ifdef Py_DEBUG
else else
assert(ep->key == NULL || ep->key == dummy); assert(entry->key == NULL || entry->key == dummy);
#endif #endif
} }
@ -446,45 +446,45 @@ set_clear_internal(PySetObject *so)
* mutates the table. * mutates the table.
*/ */
static int static int
set_next_internal(PySetObject *so, int *ppos, PyObject **pkey) set_next_internal(PySetObject *so, int *pos, PyObject **key)
{ {
register int i, mask; register int i, mask;
register setentry *ep; register setentry *entry;
assert (PyAnySet_Check(so)); assert (PyAnySet_Check(so));
i = *ppos; i = *pos;
if (i < 0) if (i < 0)
return 0; return 0;
ep = so->table; entry = so->table;
mask = so->mask; mask = so->mask;
while (i <= mask && (ep[i].key == NULL || ep[i].key == dummy)) while (i <= mask && (entry[i].key == NULL || entry[i].key == dummy))
i++; i++;
*ppos = i+1; *pos = i+1;
if (i > mask) if (i > mask)
return 0; return 0;
if (pkey) if (key)
*pkey = ep[i].key; *key = entry[i].key;
return 1; return 1;
} }
/* Methods */ /* Methods */
static int static int
set_merge_internal(PySetObject *so, PyObject *b) set_merge_internal(PySetObject *so, PyObject *otherset)
{ {
register PySetObject *other; register PySetObject *other;
register int i; register int i;
setentry *entry; setentry *entry;
assert (PyAnySet_Check(so)); assert (PyAnySet_Check(so));
assert (PyAnySet_Check(b)); assert (PyAnySet_Check(otherset));
other = (PySetObject*)b; other = (PySetObject*)otherset;
if (other == so || other->used == 0) if (other == so || other->used == 0)
/* a.update(a) or a.update({}); nothing to do */ /* a.update(a) or a.update({}); nothing to do */
return 0; return 0;
/* Do one big resize at the start, rather than /* Do one big resize at the start, rather than
* incrementally resizing as we insert new items. Expect * incrementally resizing as we insert new keys. Expect
* that there will be no (or few) overlapping keys. * that there will be no (or few) overlapping keys.
*/ */
if ((so->fill + other->used)*3 >= (so->mask+1)*2) { if ((so->fill + other->used)*3 >= (so->mask+1)*2) {
@ -563,18 +563,18 @@ static PySequenceMethods setiter_as_sequence = {
0, /* sq_concat */ 0, /* sq_concat */
}; };
static PyObject *setiter_iternextkey(setiterobject *si) static PyObject *setiter_iternext(setiterobject *si)
{ {
PyObject *key; PyObject *key;
register int i, mask; register int i, mask;
register setentry *ep; register setentry *entry;
PySetObject *d = si->si_set; PySetObject *so = si->si_set;
if (d == NULL) if (so == NULL)
return NULL; return NULL;
assert (PyAnySet_Check(d)); assert (PyAnySet_Check(so));
if (si->si_used != d->used) { if (si->si_used != so->used) {
PyErr_SetString(PyExc_RuntimeError, PyErr_SetString(PyExc_RuntimeError,
"Set changed size during iteration"); "Set changed size during iteration");
si->si_used = -1; /* Make this state sticky */ si->si_used = -1; /* Make this state sticky */
@ -584,20 +584,20 @@ static PyObject *setiter_iternextkey(setiterobject *si)
i = si->si_pos; i = si->si_pos;
if (i < 0) if (i < 0)
goto fail; goto fail;
ep = d->table; entry = so->table;
mask = d->mask; mask = so->mask;
while (i <= mask && (ep[i].key == NULL || ep[i].key == dummy)) while (i <= mask && (entry[i].key == NULL || entry[i].key == dummy))
i++; i++;
si->si_pos = i+1; si->si_pos = i+1;
if (i > mask) if (i > mask)
goto fail; goto fail;
si->len--; si->len--;
key = ep[i].key; key = entry[i].key;
Py_INCREF(key); Py_INCREF(key);
return key; return key;
fail: fail:
Py_DECREF(d); Py_DECREF(so);
si->si_set = NULL; si->si_set = NULL;
return NULL; return NULL;
} }
@ -605,7 +605,7 @@ fail:
PyTypeObject PySetIter_Type = { PyTypeObject PySetIter_Type = {
PyObject_HEAD_INIT(&PyType_Type) PyObject_HEAD_INIT(&PyType_Type)
0, /* ob_size */ 0, /* ob_size */
"Set-keyiterator", /* tp_name */ "setiterator", /* tp_name */
sizeof(setiterobject), /* tp_basicsize */ sizeof(setiterobject), /* tp_basicsize */
0, /* tp_itemsize */ 0, /* tp_itemsize */
/* methods */ /* methods */
@ -631,7 +631,7 @@ PyTypeObject PySetIter_Type = {
0, /* tp_richcompare */ 0, /* tp_richcompare */
0, /* tp_weaklistoffset */ 0, /* tp_weaklistoffset */
PyObject_SelfIter, /* tp_iter */ PyObject_SelfIter, /* tp_iter */
(iternextfunc)setiter_iternextkey, /* tp_iternext */ (iternextfunc)setiter_iternext, /* tp_iternext */
}; };
/***** Derived functions (table accesses only done with above primitives *****/ /***** Derived functions (table accesses only done with above primitives *****/
@ -650,7 +650,7 @@ PyTypeObject PySetIter_Type = {
static PyObject * static PyObject *
set_update(PySetObject *so, PyObject *other) set_update(PySetObject *so, PyObject *other)
{ {
PyObject *item, *it; PyObject *key, *it;
if (PyAnySet_Check(other)) { if (PyAnySet_Check(other)) {
if (set_merge_internal(so, other) == -1) if (set_merge_internal(so, other) == -1)
@ -659,10 +659,10 @@ set_update(PySetObject *so, PyObject *other)
} }
if (PyDict_Check(other)) { if (PyDict_Check(other)) {
PyObject *value, *item; PyObject *key, *value;
int pos = 0; int pos = 0;
while (PyDict_Next(other, &pos, &item, &value)) { while (PyDict_Next(other, &pos, &key, &value)) {
if (set_add_internal(so, item) == -1) if (set_add_internal(so, key) == -1)
return NULL; return NULL;
} }
Py_RETURN_NONE; Py_RETURN_NONE;
@ -672,13 +672,13 @@ set_update(PySetObject *so, PyObject *other)
if (it == NULL) if (it == NULL)
return NULL; return NULL;
while ((item = PyIter_Next(it)) != NULL) { while ((key = PyIter_Next(it)) != NULL) {
if (set_add_internal(so, item) == -1) { if (set_add_internal(so, key) == -1) {
Py_DECREF(it); Py_DECREF(it);
Py_DECREF(item); Py_DECREF(key);
return NULL; return NULL;
} }
Py_DECREF(item); Py_DECREF(key);
} }
Py_DECREF(it); Py_DECREF(it);
if (PyErr_Occurred()) if (PyErr_Occurred())
@ -754,7 +754,7 @@ set_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
static void static void
set_dealloc(PySetObject *so) set_dealloc(PySetObject *so)
{ {
register setentry *ep; register setentry *entry;
int fill = so->fill; int fill = so->fill;
PyObject_GC_UnTrack(so); PyObject_GC_UnTrack(so);
@ -762,10 +762,10 @@ set_dealloc(PySetObject *so)
if (so->weakreflist != NULL) if (so->weakreflist != NULL)
PyObject_ClearWeakRefs((PyObject *) so); PyObject_ClearWeakRefs((PyObject *) so);
for (ep = so->table; fill > 0; ep++) { for (entry = so->table; fill > 0; entry++) {
if (ep->key) { if (entry->key) {
--fill; --fill;
Py_DECREF(ep->key); Py_DECREF(entry->key);
} }
} }
if (so->table != so->smalltable) if (so->table != so->smalltable)
@ -778,11 +778,11 @@ set_dealloc(PySetObject *so)
static int static int
set_traverse(PySetObject *so, visitproc visit, void *arg) set_traverse(PySetObject *so, visitproc visit, void *arg)
{ {
int i = 0; int pos = 0;
PyObject *pk; PyObject *key;
while (set_next_internal(so, &i, &pk)) while (set_next_internal(so, &pos, &key))
Py_VISIT(pk); Py_VISIT(key);
return 0; return 0;
} }
@ -840,19 +840,19 @@ set_swap_bodies(PySetObject *a, PySetObject *b)
static int static int
set_contains(PySetObject *so, PyObject *key) set_contains(PySetObject *so, PyObject *key)
{ {
PyObject *tmp; PyObject *tmpkey;
int result; int result;
result = set_contains_internal(so, key); result = set_contains_internal(so, key);
if (result == -1 && PyAnySet_Check(key)) { if (result == -1 && PyAnySet_Check(key)) {
PyErr_Clear(); PyErr_Clear();
tmp = make_new_set(&PyFrozenSet_Type, NULL); tmpkey = make_new_set(&PyFrozenSet_Type, NULL);
if (tmp == NULL) if (tmpkey == NULL)
return -1; return -1;
set_swap_bodies((PySetObject *)tmp, (PySetObject *)key); set_swap_bodies((PySetObject *)tmpkey, (PySetObject *)key);
result = set_contains_internal(so, tmp); result = set_contains_internal(so, tmpkey);
set_swap_bodies((PySetObject *)tmp, (PySetObject *)key); set_swap_bodies((PySetObject *)tmpkey, (PySetObject *)key);
Py_DECREF(tmp); Py_DECREF(tmpkey);
} }
return result; return result;
} }
@ -942,7 +942,7 @@ static PyObject *
set_intersection(PySetObject *so, PyObject *other) set_intersection(PySetObject *so, PyObject *other)
{ {
PySetObject *result; PySetObject *result;
PyObject *item, *it, *tmp; PyObject *key, *it, *tmp;
result = (PySetObject *)make_new_set(so->ob_type, NULL); result = (PySetObject *)make_new_set(so->ob_type, NULL);
if (result == NULL) if (result == NULL)
@ -956,9 +956,9 @@ set_intersection(PySetObject *so, PyObject *other)
if (PyAnySet_Check(other)) { if (PyAnySet_Check(other)) {
int pos = 0; int pos = 0;
while (set_next_internal((PySetObject *)other, &pos, &item)) { while (set_next_internal((PySetObject *)other, &pos, &key)) {
if (set_contains_internal(so, item)) { if (set_contains_internal(so, key)) {
if (set_add_internal(result, item) == -1) { if (set_add_internal(result, key) == -1) {
Py_DECREF(result); Py_DECREF(result);
return NULL; return NULL;
} }
@ -973,16 +973,16 @@ set_intersection(PySetObject *so, PyObject *other)
return NULL; return NULL;
} }
while ((item = PyIter_Next(it)) != NULL) { while ((key = PyIter_Next(it)) != NULL) {
if (set_contains_internal(so, item)) { if (set_contains_internal(so, key)) {
if (set_add_internal(result, item) == -1) { if (set_add_internal(result, key) == -1) {
Py_DECREF(it); Py_DECREF(it);
Py_DECREF(result); Py_DECREF(result);
Py_DECREF(item); Py_DECREF(key);
return NULL; return NULL;
} }
} }
Py_DECREF(item); Py_DECREF(key);
} }
Py_DECREF(it); Py_DECREF(it);
if (PyErr_Occurred()) { if (PyErr_Occurred()) {
@ -1043,19 +1043,19 @@ set_iand(PySetObject *so, PyObject *other)
static PyObject * static PyObject *
set_difference_update(PySetObject *so, PyObject *other) set_difference_update(PySetObject *so, PyObject *other)
{ {
PyObject *item, *it; PyObject *key, *it;
it = PyObject_GetIter(other); it = PyObject_GetIter(other);
if (it == NULL) if (it == NULL)
return NULL; return NULL;
while ((item = PyIter_Next(it)) != NULL) { while ((key = PyIter_Next(it)) != NULL) {
if (set_discard_internal(so, item) == -1) { if (set_discard_internal(so, key) == -1) {
Py_DECREF(it); Py_DECREF(it);
Py_DECREF(item); Py_DECREF(key);
return NULL; return NULL;
} }
Py_DECREF(item); Py_DECREF(key);
} }
Py_DECREF(it); Py_DECREF(it);
if (PyErr_Occurred()) if (PyErr_Occurred())
@ -1425,9 +1425,9 @@ set_tp_clear(PySetObject *so)
} }
static PyObject * static PyObject *
set_add(PySetObject *so, PyObject *item) set_add(PySetObject *so, PyObject *key)
{ {
if (set_add_internal(so, item) == -1) if (set_add_internal(so, key) == -1)
return NULL; return NULL;
Py_RETURN_NONE; Py_RETURN_NONE;
} }
@ -1438,27 +1438,27 @@ PyDoc_STRVAR(add_doc,
This has no effect if the element is already present."); This has no effect if the element is already present.");
static PyObject * static PyObject *
set_remove(PySetObject *so, PyObject *item) set_remove(PySetObject *so, PyObject *key)
{ {
PyObject *tmp, *result; PyObject *tmpkey, *result;
int rv; int rv;
if (PyType_IsSubtype(item->ob_type, &PySet_Type)) { if (PyType_IsSubtype(key->ob_type, &PySet_Type)) {
tmp = make_new_set(&PyFrozenSet_Type, NULL); tmpkey = make_new_set(&PyFrozenSet_Type, NULL);
if (tmp == NULL) if (tmpkey == NULL)
return NULL; return NULL;
set_swap_bodies((PySetObject *)item, (PySetObject *)tmp); set_swap_bodies((PySetObject *)key, (PySetObject *)tmpkey);
result = set_remove(so, tmp); result = set_remove(so, tmpkey);
set_swap_bodies((PySetObject *)item, (PySetObject *)tmp); set_swap_bodies((PySetObject *)key, (PySetObject *)tmpkey);
Py_DECREF(tmp); Py_DECREF(tmpkey);
return result; return result;
} }
rv = set_discard_internal(so, item); rv = set_discard_internal(so, key);
if (rv == -1) if (rv == -1)
return NULL; return NULL;
else if (rv == DISCARD_NOTFOUND) { else if (rv == DISCARD_NOTFOUND) {
PyErr_SetObject(PyExc_KeyError, item); PyErr_SetObject(PyExc_KeyError, key);
return NULL; return NULL;
} }
Py_RETURN_NONE; Py_RETURN_NONE;
@ -1470,22 +1470,22 @@ PyDoc_STRVAR(remove_doc,
If the element is not a member, raise a KeyError."); If the element is not a member, raise a KeyError.");
static PyObject * static PyObject *
set_discard(PySetObject *so, PyObject *item) set_discard(PySetObject *so, PyObject *key)
{ {
PyObject *tmp, *result; PyObject *tmpkey, *result;
if (PyType_IsSubtype(item->ob_type, &PySet_Type)) { if (PyType_IsSubtype(key->ob_type, &PySet_Type)) {
tmp = make_new_set(&PyFrozenSet_Type, NULL); tmpkey = make_new_set(&PyFrozenSet_Type, NULL);
if (tmp == NULL) if (tmpkey == NULL)
return NULL; return NULL;
set_swap_bodies((PySetObject *)item, (PySetObject *)tmp); set_swap_bodies((PySetObject *)key, (PySetObject *)tmpkey);
result = set_discard(so, tmp); result = set_discard(so, tmpkey);
set_swap_bodies((PySetObject *)item, (PySetObject *)tmp); set_swap_bodies((PySetObject *)key, (PySetObject *)tmpkey);
Py_DECREF(tmp); Py_DECREF(tmpkey);
return result; return result;
} }
if (set_discard_internal(so, item) == -1) if (set_discard_internal(so, key) == -1)
return NULL; return NULL;
Py_RETURN_NONE; Py_RETURN_NONE;
} }