[pypy-commit] pypy py3.6: merge default
cfbolz
pypy.commits at gmail.com
Thu Sep 12 05:12:52 EDT 2019
Author: Carl Friedrich Bolz-Tereick <cfbolz at gmx.de>
Branch: py3.6
Changeset: r97456:41c694d4618d
Date: 2019-09-12 11:12 +0200
http://bitbucket.org/pypy/pypy/changeset/41c694d4618d/
Log: merge default
diff --git a/pypy/module/_io/interp_textio.py b/pypy/module/_io/interp_textio.py
--- a/pypy/module/_io/interp_textio.py
+++ b/pypy/module/_io/interp_textio.py
@@ -442,8 +442,24 @@
def find_char(self, marker, limit):
# only works for ascii markers!
assert 0 <= ord(marker) < 128
+ # ascii fast path
+ if self.ulen == len(self.text):
+ if limit < 0:
+ end = len(self.text)
+ else:
+ end = self.pos + limit
+ pos = self.text.find(marker, self.pos, end)
+ if pos >= 0:
+ self.pos = self.upos = pos + 1
+ return True
+ else:
+ self.pos = self.upos = end
+ return False
+
if limit < 0:
limit = sys.maxint
+ # XXX it might be better to search for the marker quickly, then compute
+ # the new upos afterwards.
scanned = 0
while scanned < limit:
# don't use next_char here, since that computes a slice etc
More information about the pypy-commit
mailing list