[pypy-commit] pypy py3.5-marshal3: fix

arigo pypy.commits at gmail.com
Sat Aug 27 14:49:00 EDT 2016


Author: Armin Rigo <arigo at tunes.org>
Branch: py3.5-marshal3
Changeset: r86618:993d50cc614c
Date: 2016-08-27 20:47 +0200
http://bitbucket.org/pypy/pypy/changeset/993d50cc614c/

Log:	fix

diff --git a/pypy/objspace/std/marshal_impl.py b/pypy/objspace/std/marshal_impl.py
--- a/pypy/objspace/std/marshal_impl.py
+++ b/pypy/objspace/std/marshal_impl.py
@@ -454,18 +454,29 @@
 def unmarshal_bytes(space, u, tc):
     return space.new_interned_str(u.get_str())
 
+def _unmarshal_ascii(u, short_length, interned):
+    if short_length:
+        lng = ord(u.get1())
+    else:
+        lng = u.get_lng()
+    s = u.get(lng)
+    w_u = u.space.newunicode(s.decode('latin1'))
+    if interned:
+        w_u = u.space.new_interned_w_str(w_u)
+    return w_u
+
 @unmarshaller(TYPE_ASCII)    # nb. never generated by pypy so far
 def unmarshal_ascii(space, u, tc):
-    _unmarshal_ascii(False, False)
+    return _unmarshal_ascii(u, False, False)
 @unmarshaller(TYPE_ASCII_INTERNED)
 def unmarshal_ascii(space, u, tc):
-    _unmarshal_ascii(False, True)
+    return _unmarshal_ascii(u, False, True)
 @unmarshaller(TYPE_SHORT_ASCII)
 def unmarshal_ascii(space, u, tc):
-    _unmarshal_ascii(True, False)
+    return _unmarshal_ascii(u, True, False)
 @unmarshaller(TYPE_SHORT_ASCII_INTERNED)
 def unmarshal_ascii(space, u, tc):
-    _unmarshal_ascii(True, True)
+    return _unmarshal_ascii(u, True, True)
 
 
 @marshaller(W_SetObject)


More information about the pypy-commit mailing list