[pypy-commit] pypy const-correctness: progress

amauryfa noreply at buildbot.pypy.org
Fri Sep 13 08:34:33 CEST 2013


Author: Amaury Forgeot d'Arc <amauryfa at gmail.com>
Branch: const-correctness
Changeset: r66934:3bd6335582cd
Date: 2013-09-11 23:21 +0200
http://bitbucket.org/pypy/pypy/changeset/3bd6335582cd/

Log:	progress

diff --git a/pypy/module/_cffi_backend/ctypeptr.py b/pypy/module/_cffi_backend/ctypeptr.py
--- a/pypy/module/_cffi_backend/ctypeptr.py
+++ b/pypy/module/_cffi_backend/ctypeptr.py
@@ -328,7 +328,7 @@
 # ____________________________________________________________
 
 
-rffi_fdopen = rffi.llexternal("fdopen", [rffi.INT, rffi.CCHARP], rffi.CCHARP)
+rffi_fdopen = rffi.llexternal("fdopen", [rffi.INT, rffi.CONST_CCHARP], rffi.CCHARP)
 rffi_setbuf = rffi.llexternal("setbuf", [rffi.CCHARP, rffi.CCHARP], lltype.Void)
 rffi_fclose = rffi.llexternal("fclose", [rffi.CCHARP], rffi.INT)
 
diff --git a/pypy/module/_cffi_backend/misc.py b/pypy/module/_cffi_backend/misc.py
--- a/pypy/module/_cffi_backend/misc.py
+++ b/pypy/module/_cffi_backend/misc.py
@@ -105,7 +105,7 @@
 # ____________________________________________________________
 
 sprintf_longdouble = rffi.llexternal(
-    "sprintf", [rffi.CCHARP, rffi.CCHARP, rffi.LONGDOUBLE], lltype.Void,
+    "sprintf", [rffi.CCHARP, rffi.CONST_CCHARP, rffi.LONGDOUBLE], lltype.Void,
     _nowrapper=True, sandboxsafe=True)
 
 FORMAT_LONGDOUBLE = rffi.str2charp("%LE")
diff --git a/pypy/module/_locale/interp_locale.py b/pypy/module/_locale/interp_locale.py
--- a/pypy/module/_locale/interp_locale.py
+++ b/pypy/module/_locale/interp_locale.py
@@ -115,8 +115,8 @@
 
     return w_result
 
-_strcoll = rlocale.external('strcoll', [rffi.CCHARP, rffi.CCHARP], rffi.INT)
-_wcscoll = rlocale.external('wcscoll', [rffi.CWCHARP, rffi.CWCHARP], rffi.INT)
+_strcoll = rlocale.external('strcoll', [rffi.CONST_CCHARP, rffi.CONST_CCHARP], rffi.INT)
+_wcscoll = rlocale.external('wcscoll', [rffi.CONST_CWCHARP, rffi.CONST_CWCHARP], rffi.INT)
 
 
 def strcoll(space, w_s1, w_s2):
@@ -147,7 +147,7 @@
     return space.wrap(result)
 
 _strxfrm = rlocale.external('strxfrm',
-                    [rffi.CCHARP, rffi.CCHARP, rffi.SIZE_T], rffi.SIZE_T)
+                    [rffi.CCHARP, rffi.CONST_CCHARP, rffi.SIZE_T], rffi.SIZE_T)
 
 @unwrap_spec(s=str)
 def strxfrm(space, s):
@@ -193,7 +193,7 @@
 # HAVE_LIBINTL dependence
 
 if rlocale.HAVE_LIBINTL:
-    _gettext = rlocale.external('gettext', [rffi.CCHARP], rffi.CCHARP)
+    _gettext = rlocale.external('gettext', [rffi.CONST_CCHARP], rffi.CCHARP)
 
     @unwrap_spec(msg=str)
     def gettext(space, msg):
@@ -205,7 +205,7 @@
         finally:
             rffi.free_charp(msg_c)
 
-    _dgettext = rlocale.external('dgettext', [rffi.CCHARP, rffi.CCHARP], rffi.CCHARP)
+    _dgettext = rlocale.external('dgettext', [rffi.CONST_CCHARP, rffi.CONST_CCHARP], rffi.CCHARP)
 
     @unwrap_spec(msg=str)
     def dgettext(space, w_domain, msg):
@@ -238,7 +238,7 @@
 
         return space.wrap(result)
 
-    _dcgettext = rlocale.external('dcgettext', [rffi.CCHARP, rffi.CCHARP, rffi.INT],
+    _dcgettext = rlocale.external('dcgettext', [rffi.CONST_CCHARP, rffi.CONST_CCHARP, rffi.INT],
                                                                 rffi.CCHARP)
 
     @unwrap_spec(msg=str, category=int)
@@ -275,7 +275,7 @@
         return space.wrap(result)
 
 
-    _textdomain = rlocale.external('textdomain', [rffi.CCHARP], rffi.CCHARP)
+    _textdomain = rlocale.external('textdomain', [rffi.CONST_CCHARP], rffi.CCHARP)
 
     def textdomain(space, w_domain):
         """textdomain(domain) -> string
@@ -299,7 +299,7 @@
 
         return space.wrap(result)
 
-    _bindtextdomain = rlocale.external('bindtextdomain', [rffi.CCHARP, rffi.CCHARP],
+    _bindtextdomain = rlocale.external('bindtextdomain', [rffi.CONST_CCHARP, rffi.CONST_CCHARP],
                                                                 rffi.CCHARP)
 
     @unwrap_spec(domain=str)
@@ -330,7 +330,7 @@
         return space.wrap(rffi.charp2str(dirname))
 
     _bind_textdomain_codeset = rlocale.external('bind_textdomain_codeset',
-                                    [rffi.CCHARP, rffi.CCHARP], rffi.CCHARP)
+                                    [rffi.CONST_CCHARP, rffi.CONST_CCHARP], rffi.CCHARP)
 
     if rlocale.HAVE_BIND_TEXTDOMAIN_CODESET:
         @unwrap_spec(domain=str)
diff --git a/pypy/module/cppyy/capi/loadable_capi.py b/pypy/module/cppyy/capi/loadable_capi.py
--- a/pypy/module/cppyy/capi/loadable_capi.py
+++ b/pypy/module/cppyy/capi/loadable_capi.py
@@ -64,7 +64,7 @@
                 else:    # only other use is sring
                     n = len(obj._string)
                     assert raw_string == rffi.cast(rffi.CCHARP, 0)
-                    raw_string = rffi.str2charp(obj._string)
+                    raw_string = rffi.cast(rffi.CCHARP, rffi.str2charp(obj._string))
                     data = rffi.cast(rffi.CCHARPP, data)
                     data[0] = raw_string
 
diff --git a/pypy/module/cpyext/intobject.py b/pypy/module/cpyext/intobject.py
--- a/pypy/module/cpyext/intobject.py
+++ b/pypy/module/cpyext/intobject.py
@@ -153,5 +153,5 @@
     w_str = space.wrap(s)
     w_base = space.wrap(rffi.cast(lltype.Signed, base))
     if pend:
-        pend[0] = rffi.ptradd(str, len(s))
+        pend[0] = rffi.cast(rffi.CCHARP, rffi.ptradd(str, len(s)))
     return space.call_function(space.w_int, w_str, w_base)
diff --git a/pypy/module/cpyext/longobject.py b/pypy/module/cpyext/longobject.py
--- a/pypy/module/cpyext/longobject.py
+++ b/pypy/module/cpyext/longobject.py
@@ -183,7 +183,7 @@
     w_str = space.wrap(s)
     w_base = space.wrap(rffi.cast(lltype.Signed, base))
     if pend:
-        pend[0] = rffi.ptradd(str, len(s))
+        pend[0] = rffi.cast(rffi.CCHARP, rffi.ptradd(str, len(s)))
     return space.call_function(space.w_long, w_str, w_base)
 
 @cpython_api([rffi.VOIDP], PyObject)
diff --git a/pypy/module/cpyext/slotdefs.py b/pypy/module/cpyext/slotdefs.py
--- a/pypy/module/cpyext/slotdefs.py
+++ b/pypy/module/cpyext/slotdefs.py
@@ -74,7 +74,7 @@
     func_target = rffi.cast(getattrfunc, func)
     check_num_args(space, w_args, 1)
     args_w = space.fixedview(w_args)
-    name_ptr = rffi.str2charp(space.str_w(args_w[0]))
+    name_ptr = rffi.cast(rffi.CCHARP, rffi.str2charp(space.str_w(args_w[0])))
     try:
         return generic_cpy_call(space, func_target, w_self, name_ptr)
     finally:
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
@@ -208,7 +208,8 @@
         # Copy unicode buffer
         w_unicode = from_ref(space, ref)
         u = space.unicode_w(w_unicode)
-        ref_unicode.c_buffer = rffi.unicode2wcharp(u)
+        # remove 'const' modifier
+        ref_unicode.c_buffer = rffi.cast(rffi.CWCHARP, rffi.unicode2wcharp(u))
     return ref_unicode.c_buffer
 
 @cpython_api([PyObject], rffi.CWCHARP)
diff --git a/pypy/module/fcntl/interp_fcntl.py b/pypy/module/fcntl/interp_fcntl.py
--- a/pypy/module/fcntl/interp_fcntl.py
+++ b/pypy/module/fcntl/interp_fcntl.py
@@ -109,7 +109,7 @@
         if not e.match(space, space.w_TypeError):
             raise
     else:
-        ll_arg = rffi.str2charp(arg)
+        ll_arg = rffi.cast(rffi.CCHARP, rffi.str2charp(arg))
         rv = fcntl_str(fd, op, ll_arg)
         arg = rffi.charpsize2str(ll_arg, len(arg))
         lltype.free(ll_arg, flavor='raw')
@@ -217,7 +217,7 @@
                 raise
         else:
             arg = rwbuffer.as_str()
-            ll_arg = rffi.str2charp(arg)
+            ll_arg = rffi.cast(rffi.CCHARP, rffi.str2charp(arg))
             rv = ioctl_str(fd, op, ll_arg)
             arg = rffi.charpsize2str(ll_arg, len(arg))
             lltype.free(ll_arg, flavor='raw')
@@ -244,7 +244,7 @@
         if not e.match(space, space.w_TypeError):
             raise
     else:
-        ll_arg = rffi.str2charp(arg)
+        ll_arg = rffi.cast(rffi.CCHARP, rffi.str2charp(arg))
         rv = ioctl_str(fd, op, ll_arg)
         arg = rffi.charpsize2str(ll_arg, len(arg))
         lltype.free(ll_arg, flavor='raw')
diff --git a/pypy/module/pyexpat/interp_pyexpat.py b/pypy/module/pyexpat/interp_pyexpat.py
--- a/pypy/module/pyexpat/interp_pyexpat.py
+++ b/pypy/module/pyexpat/interp_pyexpat.py
@@ -352,9 +352,9 @@
 # Declarations of external functions
 
 XML_ParserCreate = expat_external(
-    'XML_ParserCreate', [rffi.CCHARP], XML_Parser)
+    'XML_ParserCreate', [rffi.CONST_CCHARP], XML_Parser)
 XML_ParserCreateNS = expat_external(
-    'XML_ParserCreateNS', [rffi.CCHARP, rffi.CHAR], XML_Parser)
+    'XML_ParserCreateNS', [rffi.CONST_CCHARP, rffi.CHAR], XML_Parser)
 XML_ParserFree = expat_external(
     'XML_ParserFree', [XML_Parser], lltype.Void, threadsafe=False)
 XML_SetUserData = expat_external(
@@ -363,7 +363,7 @@
     # XXX is this always true?
     return rffi.cast(rffi.VOIDPP, parser)[0]
 XML_Parse = expat_external(
-    'XML_Parse', [XML_Parser, rffi.CCHARP, rffi.INT, rffi.INT], rffi.INT)
+    'XML_Parse', [XML_Parser, rffi.CONST_CCHARP, rffi.INT, rffi.INT], rffi.INT)
 XML_StopParser = expat_external(
     'XML_StopParser', [XML_Parser, rffi.INT], lltype.Void)
 
@@ -374,7 +374,7 @@
 XML_SetParamEntityParsing = expat_external(
     'XML_SetParamEntityParsing', [XML_Parser, rffi.INT], lltype.Void)
 XML_SetBase = expat_external(
-    'XML_SetBase', [XML_Parser, rffi.CCHARP], lltype.Void)
+    'XML_SetBase', [XML_Parser, rffi.CONST_CCHARP], lltype.Void)
 if XML_COMBINED_VERSION >= 19505:
     XML_UseForeignDTD = expat_external(
         'XML_UseForeignDTD', [XML_Parser, rffi.INT], lltype.Void)
@@ -383,7 +383,7 @@
     'XML_GetErrorCode', [XML_Parser], rffi.INT)
 XML_ErrorString = expat_external(
     'XML_ErrorString', [rffi.INT],
-    rffi.CCHARP)
+    rffi.CONST_CCHARP)
 XML_GetCurrentLineNumber = expat_external(
     'XML_GetCurrentLineNumber', [XML_Parser], rffi.INT)
 XML_GetErrorLineNumber = XML_GetCurrentLineNumber
@@ -397,11 +397,11 @@
 XML_FreeContentModel = expat_external(
     'XML_FreeContentModel', [XML_Parser, lltype.Ptr(XML_Content)], lltype.Void)
 XML_ExternalEntityParserCreate = expat_external(
-    'XML_ExternalEntityParserCreate', [XML_Parser, rffi.CCHARP, rffi.CCHARP],
+    'XML_ExternalEntityParserCreate', [XML_Parser, rffi.CONST_CCHARP, rffi.CONST_CCHARP],
     XML_Parser)
 
 XML_ExpatVersion = expat_external(
-    'XML_ExpatVersion', [], rffi.CCHARP)
+    'XML_ExpatVersion', [], rffi.CONST_CCHARP)
 
 def get_expat_version(space):
     return space.wrap(rffi.charp2str(XML_ExpatVersion()))
diff --git a/rpython/rlib/test/test_rlocale.py b/rpython/rlib/test/test_rlocale.py
--- a/rpython/rlib/test/test_rlocale.py
+++ b/rpython/rlib/test/test_rlocale.py
@@ -39,6 +39,6 @@
 def test_libintl():
     if sys.platform != "darwin" or not sys.platform.startswith("linux"):
         py.test.skip("there is (maybe) no libintl here")
-    _gettext = external('gettext', [rffi.CCHARP], rffi.CCHARP)
+    _gettext = external('gettext', [rffi.CONST_CCHARP], rffi.CCHARP)
     res = _gettext("1234")
     assert rffi.charp2str(res) == "1234"
diff --git a/rpython/rtyper/lltypesystem/test/test_rffi.py b/rpython/rtyper/lltypesystem/test/test_rffi.py
--- a/rpython/rtyper/lltypesystem/test/test_rffi.py
+++ b/rpython/rtyper/lltypesystem/test/test_rffi.py
@@ -767,11 +767,11 @@
 
 def test_ptradd():
     data = "hello, world!"
-    a = lltype.malloc(ARRAY_OF_CHAR, len(data), flavor='raw')
+    a = lltype.malloc(CONST_CCHARP.TO, len(data), flavor='raw')
     for i in xrange(len(data)):
         a[i] = data[i]
     a2 = ptradd(a, 2)
-    assert lltype.typeOf(a2) == lltype.typeOf(a) == lltype.Ptr(ARRAY_OF_CHAR)
+    assert lltype.typeOf(a2) == lltype.typeOf(a) == CONST_CCHARP
     for i in xrange(len(data) - 2):
         assert a2[i] == a[i + 2]
     lltype.free(a, flavor='raw')


More information about the pypy-commit mailing list