[pypy-commit] pypy unicode-utf8: test, fix for '\x00' in wcharp2utf8n

mattip pypy.commits at gmail.com
Tue Jan 1 08:31:30 EST 2019


Author: Matti Picus <matti.picus at gmail.com>
Branch: unicode-utf8
Changeset: r95555:36b134188782
Date: 2019-01-01 15:27 +0200
http://bitbucket.org/pypy/pypy/changeset/36b134188782/

Log:	test, fix for '\x00' in wcharp2utf8n

diff --git a/pypy/module/_rawffi/test/test__rawffi.py b/pypy/module/_rawffi/test/test__rawffi.py
--- a/pypy/module/_rawffi/test/test__rawffi.py
+++ b/pypy/module/_rawffi/test/test__rawffi.py
@@ -351,9 +351,10 @@
         import _rawffi
         A = _rawffi.Array('u')
         a = A(6, u'xx\x00\x00xx')
-        res = _rawffi.wcharp2unicode(a.buffer)
-        assert isinstance(res, unicode)
-        assert res == u'xx'
+        for i in (-1, 6):
+            res = _rawffi.wcharp2unicode(a.buffer, i)
+            assert isinstance(res, unicode)
+            assert res == u'xx'
         a.free()
 
     def test_rawstring2charp(self):
diff --git a/rpython/rtyper/lltypesystem/rffi.py b/rpython/rtyper/lltypesystem/rffi.py
--- a/rpython/rtyper/lltypesystem/rffi.py
+++ b/rpython/rtyper/lltypesystem/rffi.py
@@ -1046,7 +1046,7 @@
 
     s = rutf8.Utf8StringBuilder(maxlen)
     i = 0
-    while i < maxlen and w[i]:
+    while i < maxlen and ord(w[i]):
         s.append_code(ord(w[i]))
         i += 1
     return s.build(), i


More information about the pypy-commit mailing list