Author: Carl Friedrich Bolz-Tereick <[email protected]>
Branch: 
Changeset: r97694:f0d037751b82
Date: 2019-10-01 21:02 +0200
http://bitbucket.org/pypy/pypy/changeset/f0d037751b82/

Log:    don't turn ord(u) and u.islower() etc into bridges

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)
@@ -134,7 +138,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
@@ -432,7 +436,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)
 
@@ -977,6 +981,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

Reply via email to