summaryrefslogtreecommitdiff
path: root/Objects/setobject.c
diff options
context:
space:
mode:
authorChristian Heimes <christian@python.org>2016-09-12 10:48:55 +0200
committerChristian Heimes <christian@python.org>2016-09-12 10:48:55 +0200
commit4d9a72902dec55fe87f105324adc4239a13d966f (patch)
tree12336d19f4aa31e4ef9d2687883006395c474b5d /Objects/setobject.c
parent9017ec1ea0347c4bd901c329254590a9f86a69b8 (diff)
parent0d5048cb21e431c1a8221e15563837090946be81 (diff)
downloadcpython-git-4d9a72902dec55fe87f105324adc4239a13d966f.tar.gz
merge
Diffstat (limited to 'Objects/setobject.c')
-rw-r--r--Objects/setobject.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/Objects/setobject.c b/Objects/setobject.c
index 6dd403f30f..5846045376 100644
--- a/Objects/setobject.c
+++ b/Objects/setobject.c
@@ -1476,6 +1476,10 @@ PyDoc_STRVAR(isdisjoint_doc,
static int
set_difference_update_internal(PySetObject *so, PyObject *other)
{
+ if (PySet_GET_SIZE(so) == 0) {
+ return 0;
+ }
+
if ((PyObject *)so == other)
return set_clear_internal(so);
@@ -1550,6 +1554,10 @@ set_difference(PySetObject *so, PyObject *other)
Py_ssize_t pos = 0;
int rv;
+ if (PySet_GET_SIZE(so) == 0) {
+ return set_copy(so);
+ }
+
if (!PyAnySet_Check(other) && !PyDict_CheckExact(other)) {
return set_copy_and_difference(so, other);
}