]> granicus.if.org Git - python/commitdiff
TextIO improvement:
authorGuido van Rossum <guido@python.org>
Thu, 12 Apr 2007 05:24:24 +0000 (05:24 +0000)
committerGuido van Rossum <guido@python.org>
Thu, 12 Apr 2007 05:24:24 +0000 (05:24 +0000)
- 25% speed increse in tell();
- f.seek(0, 1) now maps to f.seek(f.tell(), 0) instead of to f.tell().

Lib/io.py

index 21f72c8409a255a66467e1505f9203d3466eafc7..ccdb3fb7d4e52a28c7defb7721667f52925ac4a0 100644 (file)
--- a/Lib/io.py
+++ b/Lib/io.py
@@ -992,8 +992,9 @@ class TextIOWrapper(TextIOBase):
             return self._encode_decoder_state(decoder_state, position)
         decoder = pickle.loads(decoder_state)
         n = 0
-        for i, b in enumerate(readahead):
-            n += len(decoder.decode(bytes([b])))
+        bb = bytes(1)
+        for i, bb[0] in enumerate(readahead):
+            n += len(decoder.decode(bb))
             if n >= needed:
                 decoder_state = pickle.dumps(decoder, 2)
                 return self._encode_decoder_state(decoder_state, position+i+1)
@@ -1005,7 +1006,8 @@ class TextIOWrapper(TextIOBase):
         if whence == 1:
             if pos != 0:
                 raise IOError("Can't do nonzero cur-relative seeks")
-            return self.tell()
+            pos = self.tell()
+            whence = 0
         if whence == 2:
             if pos != 0:
                 raise IOError("Can't do nonzero end-relative seeks")