From e0c8635d89f8d63808b3be66cccc36d7a7d3bdab Mon Sep 17 00:00:00 2001 From: Eli Bendersky Date: Fri, 4 Mar 2011 05:10:57 +0000 Subject: [PATCH] Merged revisions 88735 via svnmerge from svn+ssh://pythondev@svn.python.org/python/branches/py3k ........ r88735 | eli.bendersky | 2011-03-04 06:55:25 +0200 (Fri, 04 Mar 2011) | 2 lines Issue #11386: Fixed the exception thrown by bytearray.pop() for empty bytearrays ........ --- Lib/test/test_bytes.py | 2 +- Misc/NEWS | 3 +++ Objects/bytearrayobject.c | 4 ++-- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/Lib/test/test_bytes.py b/Lib/test/test_bytes.py index e5c7ccd4ff0..9be1008c364 100644 --- a/Lib/test/test_bytes.py +++ b/Lib/test/test_bytes.py @@ -755,7 +755,7 @@ class ByteArrayTest(BaseBytesTest): self.assertEqual(b.pop(0), ord('w')) self.assertEqual(b.pop(-2), ord('r')) self.assertRaises(IndexError, lambda: b.pop(10)) - self.assertRaises(OverflowError, lambda: bytearray().pop()) + self.assertRaises(IndexError, lambda: bytearray().pop()) # test for issue #6846 self.assertEqual(bytearray(b'\xff').pop(), 0xff) diff --git a/Misc/NEWS b/Misc/NEWS index 1e2a14f438e..fcbcc882a97 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -25,6 +25,9 @@ Core and Builtins - Check for NULL result in PyType_FromSpec. +- Issue #11386: bytearray.pop() now throws IndexError when the bytearray is + empty, instead of OverflowError. + Library ------- diff --git a/Objects/bytearrayobject.c b/Objects/bytearrayobject.c index 74483544c00..aefec9425f4 100644 --- a/Objects/bytearrayobject.c +++ b/Objects/bytearrayobject.c @@ -2285,8 +2285,8 @@ bytearray_pop(PyByteArrayObject *self, PyObject *args) return NULL; if (n == 0) { - PyErr_SetString(PyExc_OverflowError, - "cannot pop an empty bytearray"); + PyErr_SetString(PyExc_IndexError, + "pop from empty bytearray"); return NULL; } if (where < 0)