diff options
| author | Raymond Hettinger <python@rcn.com> | 2007-02-01 21:02:59 +0000 |
|---|---|---|
| committer | Raymond Hettinger <python@rcn.com> | 2007-02-01 21:02:59 +0000 |
| commit | 96ab193e510b3fdcdd25488d6dd576adeffba5c5 (patch) | |
| tree | b9535a7fa1c223df794b8d7693744d0a44cc7b33 /Objects/setobject.c | |
| parent | 4ba625f779f3f05de5911ad384d3c26451351f19 (diff) | |
| download | cpython-96ab193e510b3fdcdd25488d6dd576adeffba5c5.tar.gz | |
Bug #1648179: set.update() not recognizing __iter__ overrides in dict subclasses.
Diffstat (limited to 'Objects/setobject.c')
| -rw-r--r-- | Objects/setobject.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/Objects/setobject.c b/Objects/setobject.c index f038ee3fde..5b5fb3df01 100644 --- a/Objects/setobject.c +++ b/Objects/setobject.c @@ -915,7 +915,7 @@ set_update_internal(PySetObject *so, PyObject *other) if (PyAnySet_Check(other)) return set_merge(so, other); - if (PyDict_Check(other)) { + if (PyDict_CheckExact(other)) { PyObject *value; Py_ssize_t pos = 0; while (PyDict_Next(other, &pos, &key, &value)) { @@ -1363,7 +1363,7 @@ set_difference(PySetObject *so, PyObject *other) setentry *entry; Py_ssize_t pos = 0; - if (!PyAnySet_Check(other) && !PyDict_Check(other)) { + if (!PyAnySet_Check(other) && !PyDict_CheckExact(other)) { result = set_copy(so); if (result == NULL) return NULL; @@ -1377,7 +1377,7 @@ set_difference(PySetObject *so, PyObject *other) if (result == NULL) return NULL; - if (PyDict_Check(other)) { + if (PyDict_CheckExact(other)) { while (set_next(so, &pos, &entry)) { setentry entrycopy; entrycopy.hash = entry->hash; @@ -1450,7 +1450,7 @@ set_symmetric_difference_update(PySetObject *so, PyObject *other) if ((PyObject *)so == other) return set_clear(so); - if (PyDict_Check(other)) { + if (PyDict_CheckExact(other)) { PyObject *value; int rv; while (PyDict_Next(other, &pos, &key, &value)) { |
