[Python-3000-checkins] r62802 - in python/branches/py3k/Lib: io.py test/test_memoryio.py

alexandre.vassalotti python-3000-checkins at python.org
Wed May 7 01:47:23 CEST 2008


Author: alexandre.vassalotti
Date: Wed May  7 01:47:23 2008
New Revision: 62802

Log:
Fixed a small bug introduced by r62778.

One of the codepaths of _BytesIO.read() returned a bytearray
object, by mistake, when it should always return a bytes object.
Interestingly, the fact this bug shown up probably means that
some platforms are not using the new C-accelerated io.BytesIO.


Modified:
   python/branches/py3k/Lib/io.py
   python/branches/py3k/Lib/test/test_memoryio.py

Modified: python/branches/py3k/Lib/io.py
==============================================================================
--- python/branches/py3k/Lib/io.py	(original)
+++ python/branches/py3k/Lib/io.py	Wed May  7 01:47:23 2008
@@ -794,7 +794,7 @@
         if n < 0:
             n = len(self._buffer)
         if len(self._buffer) <= self._pos:
-            return self._buffer[:0]
+            return bytes(self._buffer[:0])
         newpos = min(len(self._buffer), self._pos + n)
         b = self._buffer[self._pos : newpos]
         self._pos = newpos

Modified: python/branches/py3k/Lib/test/test_memoryio.py
==============================================================================
--- python/branches/py3k/Lib/test/test_memoryio.py	(original)
+++ python/branches/py3k/Lib/test/test_memoryio.py	Wed May  7 01:47:23 2008
@@ -114,6 +114,8 @@
         self.assertEqual(memio.read(-1), buf)
         memio.seek(0)
         self.assertEqual(type(memio.read()), type(buf))
+        memio.seek(100)
+        self.assertEqual(type(memio.read()), type(buf))
         memio.seek(0)
         self.assertEqual(memio.read(None), buf)
         self.assertRaises(TypeError, memio.read, '')


More information about the Python-3000-checkins mailing list