Author: Ronan Lamy <[email protected]>
Branch:
Changeset: r89645:0cce543d57b5
Date: 2017-01-17 19:23 +0000
http://bitbucket.org/pypy/pypy/changeset/0cce543d57b5/
Log: Fix translation: add required casts from const char* to char*
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
@@ -1,6 +1,6 @@
from rpython.rtyper.lltypesystem import rffi
from pypy.module.cpyext.api import (
- cpython_api, CANNOT_FAIL, Py_TPFLAGS_HAVE_NEWBUFFER)
+ cpython_api, CANNOT_FAIL, Py_TPFLAGS_HAVE_NEWBUFFER, cts)
from pypy.module.cpyext.pyobject import PyObject
@cpython_api([PyObject], rffi.INT_real, error=CANNOT_FAIL)
@@ -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)
+ name = rffi.charp2str(cts.cast('char*', 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
@@ -360,7 +360,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(cts.cast('char*', pto.c_tp_doc)))
if pto.c_tp_new:
add_tp_new_wrapper(space, dict_w, pto)
@@ -487,7 +488,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(cts.cast('char*', pto.c_tp_name))
flag_heaptype = pto.c_tp_flags & Py_TPFLAGS_HEAPTYPE
if flag_heaptype:
minsize = rffi.sizeof(PyHeapTypeObject.TO)
@@ -506,7 +507,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(cts.cast('char*', pto.c_tp_doc)))
@bootstrap_function
def init_typeobject(space):
@@ -800,7 +802,7 @@
try:
w_obj = _type_realize(space, py_obj)
finally:
- name = rffi.charp2str(pto.c_tp_name)
+ name = rffi.charp2str(cts.cast('char*', pto.c_tp_name))
pto.c_tp_flags &= ~Py_TPFLAGS_READYING
pto.c_tp_flags |= Py_TPFLAGS_READY
return w_obj
@@ -907,7 +909,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(cts.cast('char*', 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