Author: Carl Friedrich Bolz-Tereick <[email protected]>
Branch: record-known-result
Changeset: r97699:d07336d23a84
Date: 2019-10-01 21:12 +0200
http://bitbucket.org/pypy/pypy/changeset/d07336d23a84/
Log: merge default
diff --git a/pypy/objspace/std/unicodeobject.py
b/pypy/objspace/std/unicodeobject.py
--- a/pypy/objspace/std/unicodeobject.py
+++ b/pypy/objspace/std/unicodeobject.py
@@ -41,6 +41,10 @@
def prev_codepoint_pos_dont_look_inside(utf8, p):
return rutf8.prev_codepoint_pos(utf8, p)
[email protected]
+def codepoint_at_pos_dont_look_inside(utf8, p):
+ return rutf8.codepoint_at_pos(utf8, p)
+
class W_UnicodeObject(W_Root):
import_from_mixin(StringMethods)
@@ -135,7 +139,7 @@
raise oefmt(space.w_TypeError,
"ord() expected a character, but string of length %d "
"found", self._len())
- return space.newint(rutf8.codepoint_at_pos(self._utf8, 0))
+ return space.newint(self.codepoint_at_pos_dont_look_inside(0))
def _empty(self):
return W_UnicodeObject.EMPTY
@@ -433,7 +437,7 @@
if self._length == 0:
return space.w_False
if self._length == 1:
- return space.newbool(func(rutf8.codepoint_at_pos(self._utf8, 0)))
+ return
space.newbool(func(self.codepoint_at_pos_dont_look_inside(0)))
else:
return self._is_generic_loop(space, self._utf8, func_name)
@@ -994,6 +998,11 @@
return pos - 1
return prev_codepoint_pos_dont_look_inside(self._utf8, pos)
+ def codepoint_at_pos_dont_look_inside(self, pos):
+ if self.is_ascii():
+ return ord(self._utf8[pos])
+ return codepoint_at_pos_dont_look_inside(self._utf8, pos)
+
@always_inline
def _unwrap_and_search(self, space, w_sub, w_start, w_end, forward=True):
w_sub = self.convert_arg_to_w_unicode(space, w_sub)
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit