Issue 6573: Fix set.union() for cases where self is in the argument chain.
This commit is contained in:
parent
794b2a78d0
commit
c2b9e1a134
|
@ -81,6 +81,10 @@ class TestJointOps(unittest.TestCase):
|
||||||
self.assertEqual(self.thetype('abcba').union(C('ef')), set('abcef'))
|
self.assertEqual(self.thetype('abcba').union(C('ef')), set('abcef'))
|
||||||
self.assertEqual(self.thetype('abcba').union(C('ef'), C('fg')), set('abcefg'))
|
self.assertEqual(self.thetype('abcba').union(C('ef'), C('fg')), set('abcefg'))
|
||||||
|
|
||||||
|
# Issue #6573
|
||||||
|
x = self.thetype()
|
||||||
|
self.assertEqual(x.union(set([1]), x, set([2])), self.thetype([1, 2]))
|
||||||
|
|
||||||
def test_or(self):
|
def test_or(self):
|
||||||
i = self.s.union(self.otherword)
|
i = self.s.union(self.otherword)
|
||||||
self.assertEqual(self.s | set(self.otherword), i)
|
self.assertEqual(self.s | set(self.otherword), i)
|
||||||
|
|
|
@ -14,6 +14,9 @@ Core and Builtins
|
||||||
|
|
||||||
- Issue #6540: Fixed crash for bytearray.translate() with invalid parameters.
|
- Issue #6540: Fixed crash for bytearray.translate() with invalid parameters.
|
||||||
|
|
||||||
|
- Issue #6573: set.union() stopped processing inputs if an instance of self
|
||||||
|
occurred in the argument chain.
|
||||||
|
|
||||||
- Issue #1616979: Added the cp720 (Arabic DOS) encoding.
|
- Issue #1616979: Added the cp720 (Arabic DOS) encoding.
|
||||||
|
|
||||||
- Issue #6070: On posix platforms import no longer copies the execute bit
|
- Issue #6070: On posix platforms import no longer copies the execute bit
|
||||||
|
|
|
@ -1183,7 +1183,7 @@ set_union(PySetObject *so, PyObject *args)
|
||||||
for (i=0 ; i<PyTuple_GET_SIZE(args) ; i++) {
|
for (i=0 ; i<PyTuple_GET_SIZE(args) ; i++) {
|
||||||
other = PyTuple_GET_ITEM(args, i);
|
other = PyTuple_GET_ITEM(args, i);
|
||||||
if ((PyObject *)so == other)
|
if ((PyObject *)so == other)
|
||||||
return (PyObject *)result;
|
continue;
|
||||||
if (set_update_internal(result, other) == -1) {
|
if (set_update_internal(result, other) == -1) {
|
||||||
Py_DECREF(result);
|
Py_DECREF(result);
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
Loading…
Reference in New Issue