[pypy-commit] pypy rw-PyString_AS_STRING: allow subclassing PyUnicode_Type

mattip pypy.commits at gmail.com
Tue Jun 14 18:09:28 EDT 2016


Author: Matti Picus <matti.picus at gmail.com>
Branch: rw-PyString_AS_STRING
Changeset: r85170:752495b32c5f
Date: 2016-06-14 21:18 +0300
http://bitbucket.org/pypy/pypy/changeset/752495b32c5f/

Log:	allow subclassing PyUnicode_Type

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
@@ -77,7 +77,9 @@
     """
     py_uni = rffi.cast(PyUnicodeObject, py_obj)
     s = rffi.wcharpsize2unicode(py_uni.c_str, py_uni.c_length)
-    w_obj = space.wrap(s)
+    w_type = from_ref(space, rffi.cast(PyObject, py_obj.c_ob_type))
+    w_obj = space.allocate_instance(unicodeobject.W_UnicodeObject, w_type)
+    w_obj.__init__(s)
     py_uni.c_hash = space.hash_w(w_obj)
     track_reference(space, py_obj, w_obj)
     return w_obj


More information about the pypy-commit mailing list