mirror of
https://github.com/python/cpython.git
synced 2025-10-08 08:01:55 +00:00
merge from trunk
This commit is contained in:
parent
2d8dcdcb06
commit
f10a79aad4
40 changed files with 621 additions and 305 deletions
|
@ -746,7 +746,8 @@ set_pop(PySetObject *so)
|
|||
return key;
|
||||
}
|
||||
|
||||
PyDoc_STRVAR(pop_doc, "Remove and return an arbitrary set element.");
|
||||
PyDoc_STRVAR(pop_doc, "Remove and return an arbitrary set element.\n\
|
||||
Raises KeyError if the set is empty.");
|
||||
|
||||
static int
|
||||
set_traverse(PySetObject *so, visitproc visit, void *arg)
|
||||
|
@ -1861,7 +1862,7 @@ PyDoc_STRVAR(contains_doc, "x.__contains__(y) <==> y in x.");
|
|||
static PyObject *
|
||||
set_remove(PySetObject *so, PyObject *key)
|
||||
{
|
||||
PyObject *tmpkey, *result;
|
||||
PyObject *tmpkey;
|
||||
int rv;
|
||||
|
||||
rv = set_discard_key(so, key);
|
||||
|
@ -1873,11 +1874,14 @@ set_remove(PySetObject *so, PyObject *key)
|
|||
if (tmpkey == NULL)
|
||||
return NULL;
|
||||
set_swap_bodies((PySetObject *)tmpkey, (PySetObject *)key);
|
||||
result = set_remove(so, tmpkey);
|
||||
rv = set_discard_key(so, tmpkey);
|
||||
set_swap_bodies((PySetObject *)tmpkey, (PySetObject *)key);
|
||||
Py_DECREF(tmpkey);
|
||||
return result;
|
||||
} else if (rv == DISCARD_NOTFOUND) {
|
||||
if (rv == -1)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if (rv == DISCARD_NOTFOUND) {
|
||||
set_key_error(key);
|
||||
return NULL;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue