Mercurial > cpython-lru_cache-weakref
diff Objects/setobject.c @ 40768:1f71a32f98d2 legacy-trunk
Bypass set specific optimizations for set and frozenset subclasses.
| author | Raymond Hettinger <python@rcn.com> |
|---|---|
| date | Thu, 08 Feb 2007 00:50:39 +0000 |
| parents | 2a8e9efb5d20 |
| children | b0f8e9b0cc19 |
line wrap: on
line diff
--- a/Objects/setobject.c Thu Feb 08 00:07:32 2007 +0000 +++ b/Objects/setobject.c Thu Feb 08 00:50:39 2007 +0000 @@ -912,7 +912,7 @@ { PyObject *key, *it; - if (PyAnySet_Check(other)) + if (PyAnySet_CheckExact(other)) return set_merge(so, other); if (PyDict_CheckExact(other)) { @@ -1190,7 +1190,7 @@ if (result == NULL) return NULL; - if (PyAnySet_Check(other)) { + if (PyAnySet_CheckExact(other)) { Py_ssize_t pos = 0; setentry *entry; @@ -1314,7 +1314,7 @@ if ((PyObject *)so == other) return set_clear_internal(so); - if (PyAnySet_Check(other)) { + if (PyAnySet_CheckExact(other)) { setentry *entry; Py_ssize_t pos = 0; @@ -1363,7 +1363,7 @@ setentry *entry; Py_ssize_t pos = 0; - if (!PyAnySet_Check(other) && !PyDict_CheckExact(other)) { + if (!PyAnySet_CheckExact(other) && !PyDict_CheckExact(other)) { result = set_copy(so); if (result == NULL) return NULL; @@ -1472,7 +1472,7 @@ Py_RETURN_NONE; } - if (PyAnySet_Check(other)) { + if (PyAnySet_CheckExact(other)) { Py_INCREF(other); otherset = (PySetObject *)other; } else { @@ -1555,7 +1555,7 @@ setentry *entry; Py_ssize_t pos = 0; - if (!PyAnySet_Check(other)) { + if (!PyAnySet_CheckExact(other)) { PyObject *tmp, *result; tmp = make_new_set(&PySet_Type, other); if (tmp == NULL) @@ -1584,7 +1584,7 @@ { PyObject *tmp, *result; - if (!PyAnySet_Check(other)) { + if (!PyAnySet_CheckExact(other)) { tmp = make_new_set(&PySet_Type, other); if (tmp == NULL) return NULL;
