summaryrefslogtreecommitdiffstats
path: root/Objects
diff options
context:
space:
mode:
authorRaymond Hettinger <python@rcn.com>2010-08-06 10:18:56 (GMT)
committerRaymond Hettinger <python@rcn.com>2010-08-06 10:18:56 (GMT)
commit3ad323ecaf9bbead043a8799d0a6189c6812b581 (patch)
tree013fa5fc3a6ba19f07f6ff24cb4eb895167d9769 /Objects
parent5e684339c23a6bcac8896a5d25549dbe9d7b8aa6 (diff)
downloadcpython-3ad323ecaf9bbead043a8799d0a6189c6812b581.zip
cpython-3ad323ecaf9bbead043a8799d0a6189c6812b581.tar.gz
cpython-3ad323ecaf9bbead043a8799d0a6189c6812b581.tar.bz2
Issue8757: Implicit set-to-frozenset conversion not thread-safe.
Diffstat (limited to 'Objects')
-rw-r--r--Objects/setobject.c12
1 files changed, 3 insertions, 9 deletions
diff --git a/Objects/setobject.c b/Objects/setobject.c
index f98a930..00cabe6 100644
--- a/Objects/setobject.c
+++ b/Objects/setobject.c
@@ -1855,12 +1855,10 @@ set_contains(PySetObject *so, PyObject *key)
if (!PySet_Check(key) || !PyErr_ExceptionMatches(PyExc_TypeError))
return -1;
PyErr_Clear();
- tmpkey = make_new_set(&PyFrozenSet_Type, NULL);
+ tmpkey = make_new_set(&PyFrozenSet_Type, key);
if (tmpkey == NULL)
return -1;
- set_swap_bodies((PySetObject *)tmpkey, (PySetObject *)key);
rv = set_contains(so, tmpkey);
- set_swap_bodies((PySetObject *)tmpkey, (PySetObject *)key);
Py_DECREF(tmpkey);
}
return rv;
@@ -1890,12 +1888,10 @@ set_remove(PySetObject *so, PyObject *key)
if (!PySet_Check(key) || !PyErr_ExceptionMatches(PyExc_TypeError))
return NULL;
PyErr_Clear();
- tmpkey = make_new_set(&PyFrozenSet_Type, NULL);
+ tmpkey = make_new_set(&PyFrozenSet_Type, key);
if (tmpkey == NULL)
return NULL;
- set_swap_bodies((PySetObject *)tmpkey, (PySetObject *)key);
rv = set_discard_key(so, tmpkey);
- set_swap_bodies((PySetObject *)tmpkey, (PySetObject *)key);
Py_DECREF(tmpkey);
if (rv == -1)
return NULL;
@@ -1924,12 +1920,10 @@ set_discard(PySetObject *so, PyObject *key)
if (!PySet_Check(key) || !PyErr_ExceptionMatches(PyExc_TypeError))
return NULL;
PyErr_Clear();
- tmpkey = make_new_set(&PyFrozenSet_Type, NULL);
+ tmpkey = make_new_set(&PyFrozenSet_Type, key);
if (tmpkey == NULL)
return NULL;
- set_swap_bodies((PySetObject *)tmpkey, (PySetObject *)key);
result = set_discard(so, tmpkey);
- set_swap_bodies((PySetObject *)tmpkey, (PySetObject *)key);
Py_DECREF(tmpkey);
return result;
}