]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
Handle the case with zero arguments.
authorRaymond Hettinger <python@rcn.com>
Wed, 11 Jun 2008 00:44:47 +0000 (00:44 +0000)
committerRaymond Hettinger <python@rcn.com>
Wed, 11 Jun 2008 00:44:47 +0000 (00:44 +0000)
Lib/test/test_set.py
Objects/setobject.c

index 729cc3b209ca84f96427ebf4c3ce19e9a9047670..b32d953a84fdbe087af4bc0f98895778e3645499 100644 (file)
@@ -104,6 +104,12 @@ class TestJointOps(unittest.TestCase):
             self.assertEqual(self.thetype('abcba').intersection(C('ccb')), set('bc'))
             self.assertEqual(self.thetype('abcba').intersection(C('ef')), set(''))
             self.assertEqual(self.thetype('abcba').intersection(C('cbcf'), C('bag')), set('b'))
+        s = self.thetype('abcba')
+        z = s.intersection()
+        if self.thetype == frozenset():
+            self.assertEqual(id(s), id(z))
+        else:
+            self.assertNotEqual(id(s), id(z))
 
     def test_isdisjoint(self):
         def f(s1, s2):
index a892dc8ae135c6ae03f375229f758626ea2999b2..1127680c071f0ea14440129ad6a7601deebc7ca8 100644 (file)
@@ -1312,6 +1312,9 @@ set_intersection_multi(PySetObject *so, PyObject *args)
        Py_ssize_t i;
        PyObject *result = (PyObject *)so;
 
+       if (PyTuple_GET_SIZE(args) == 0)
+               return set_copy(so);
+
        Py_INCREF(so);
        for (i=0 ; i<PyTuple_GET_SIZE(args) ; i++) {
                PyObject *other = PyTuple_GET_ITEM(args, i);