mirror of
https://github.com/python/cpython.git
synced 2025-08-27 12:16:04 +00:00
Improve variable names.
This commit is contained in:
parent
9dcb17cb1a
commit
06d8cf8ceb
1 changed files with 154 additions and 154 deletions
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue