[pypy-commit] pypy default: fix, use unicodehelper.wcharpsize2utf8 more widely

mattip pypy.commits at gmail.com
Wed Feb 20 02:47:44 EST 2019


Author: Matti Picus <matti.picus at gmail.com>
Branch: 
Changeset: r96104:9ece3d54c956
Date: 2019-02-20 09:04 +0200
http://bitbucket.org/pypy/pypy/changeset/9ece3d54c956/

Log:	fix, use unicodehelper.wcharpsize2utf8 more widely

diff --git a/pypy/interpreter/unicodehelper.py b/pypy/interpreter/unicodehelper.py
--- a/pypy/interpreter/unicodehelper.py
+++ b/pypy/interpreter/unicodehelper.py
@@ -537,14 +537,14 @@
 def wcharpsize2utf8(space, wcharp, size):
     """Safe version of rffi.wcharpsize2utf8.
 
-    Raises app-level ValueError if any wchar value is outside the valid
+    Raises app-level rutf8.OutOfRange if any wchar value is outside the valid
     codepoint range.
     """
     try:
         return rffi.wcharpsize2utf8(wcharp, size)
-    except ValueError:
+    except rutf8.OutOfRange as e:
         raise oefmt(space.w_ValueError,
-            "character is not in range [U+0000; U+10ffff]")
+            "character %s is not in range [U+0000; U+10ffff]", 'U+%x' % e.code)
 
 
 # ____________________________________________________________
diff --git a/pypy/module/cpyext/unicodeobject.py b/pypy/module/cpyext/unicodeobject.py
--- a/pypy/module/cpyext/unicodeobject.py
+++ b/pypy/module/cpyext/unicodeobject.py
@@ -18,7 +18,6 @@
 from pypy.module.cpyext.bytesobject import PyString_Check
 from pypy.module.sys.interp_encoding import setdefaultencoding
 from pypy.module._codecs.interp_codecs import CodecState
-from pypy.interpreter import unicodehelper
 from pypy.objspace.std import unicodeobject
 import sys
 
@@ -618,7 +617,7 @@
         errors = None
 
     state = space.fromcache(CodecState)
-    result, _,  length, byteorder = unicodehelper.str_decode_utf_32_helper(
+    result, _,  length, byteorder = str_decode_utf_32_helper(
         string, errors, final=True, errorhandler=state.decode_error_handler,
         byteorder=byteorder)
     if pbyteorder is not None:
@@ -641,7 +640,7 @@
 
     Returns 0 on success, -1 on failure.
     """
-    u = rffi.wcharpsize2utf8(s, length)
+    u = wcharpsize2utf8(space, s, length)
     if llerrors:
         errors = rffi.charp2str(llerrors)
     else:


More information about the pypy-commit mailing list