Author: Ronan Lamy <[email protected]>
Branch: rffi-parser
Changeset: r89172:e3991a2b6927
Date: 2016-12-19 00:07 +0000
http://bitbucket.org/pypy/pypy/changeset/e3991a2b6927/

Log:    const-correctness for tp_doc and tp_name

diff --git a/pypy/module/cpyext/buffer.py b/pypy/module/cpyext/buffer.py
--- a/pypy/module/cpyext/buffer.py
+++ b/pypy/module/cpyext/buffer.py
@@ -10,10 +10,8 @@
     flags = pyobj.c_ob_type.c_tp_flags
     if (flags & Py_TPFLAGS_HAVE_NEWBUFFER and as_buffer.c_bf_getbuffer):
         return 1
-    name = rffi.charp2str(pyobj.c_ob_type.c_tp_name)
-    if  name in ('str', 'bytes'):
+    name = rffi.charp2str(rffi.cast(rffi.CCHARP, pyobj.c_ob_type.c_tp_name))
+    if name in ('str', 'bytes'):
         # XXX remove once wrapper of __buffer__ -> bf_getbuffer works
         return 1
-    return 0  
-
-    
+    return 0
diff --git a/pypy/module/cpyext/typeobject.py b/pypy/module/cpyext/typeobject.py
--- a/pypy/module/cpyext/typeobject.py
+++ b/pypy/module/cpyext/typeobject.py
@@ -322,7 +322,8 @@
                 wrapper_func_kwds, doc, func_voidp, offset=offset)
         dict_w[method_name] = space.wrap(w_obj)
     if pto.c_tp_doc:
-        dict_w['__doc__'] = space.newbytes(rffi.charp2str(pto.c_tp_doc))
+        dict_w['__doc__'] = space.newbytes(
+            rffi.charp2str(rffi.cast(rffi.CCHARP, pto.c_tp_doc)))
     if pto.c_tp_new:
         add_tp_new_wrapper(space, dict_w, pto)
 
@@ -456,7 +457,7 @@
         convert_getset_defs(space, dict_w, pto.c_tp_getset, self)
         convert_member_defs(space, dict_w, pto.c_tp_members, self)
 
-        name = rffi.charp2str(pto.c_tp_name)
+        name = rffi.charp2str(rffi.cast(rffi.CCHARP, pto.c_tp_name))
         flag_heaptype = pto.c_tp_flags & Py_TPFLAGS_HEAPTYPE
         if flag_heaptype:
             minsize = rffi.sizeof(PyHeapTypeObject.TO)
@@ -475,7 +476,8 @@
               not (pto.c_tp_as_sequence and pto.c_tp_as_sequence.c_sq_slice)):
             self.flag_map_or_seq = 'M'
         if pto.c_tp_doc:
-            self.w_doc = space.wrap(rffi.charp2str(pto.c_tp_doc))
+            self.w_doc = space.newbytes(
+                rffi.charp2str(rffi.cast(rffi.CCHARP, pto.c_tp_doc)))
 
 @bootstrap_function
 def init_typeobject(space):
@@ -752,7 +754,7 @@
     try:
         w_obj = _type_realize(space, py_obj)
     finally:
-        name = rffi.charp2str(pto.c_tp_name)
+        name = rffi.charp2str(rffi.cast(rffi.CCHARP, pto.c_tp_name))
         pto.c_tp_flags &= ~Py_TPFLAGS_READYING
     pto.c_tp_flags |= Py_TPFLAGS_READY
     return w_obj
@@ -858,7 +860,7 @@
     base = pto.c_tp_base
     base_pyo = rffi.cast(PyObject, pto.c_tp_base)
     if base and not base.c_tp_flags & Py_TPFLAGS_READY:
-        name = rffi.charp2str(base.c_tp_name)
+        name = rffi.charp2str(rffi.cast(rffi.CCHARP, base.c_tp_name))
         type_realize(space, base_pyo)
     if base and not pto.c_ob_type: # will be filled later
         pto.c_ob_type = base.c_ob_type
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to