[pypy-commit] pypy unicode-utf8: fast path for unicode, bytes

mattip pypy.commits at gmail.com
Thu Dec 20 06:31:22 EST 2018


Author: Matti Picus <matti.picus at gmail.com>
Branch: unicode-utf8
Changeset: r95515:3b46fe8d4d44
Date: 2018-12-16 22:24 +0200
http://bitbucket.org/pypy/pypy/changeset/3b46fe8d4d44/

Log:	fast path for unicode, bytes

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
@@ -1111,7 +1111,11 @@
             unicodehelper.check_ascii_or_raise(space, s)
             return space.newutf8(s, len(s))
         if encoding == 'utf-8' or encoding == 'utf8':
-            s = space.charbuf_w(w_obj)
+            if (space.isinstance_w(w_obj, space.w_unicode) or 
+                space.isinstance_w(w_obj, space.w_bytes)):
+                s = space.utf8_w(w_obj)
+            else:
+                s = space.charbuf_w(w_obj)
             lgt = unicodehelper.check_utf8_or_raise(space, s)
             return space.newutf8(s, lgt)
     w_codecs = space.getbuiltinmodule("_codecs")


More information about the pypy-commit mailing list