You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by tr...@apache.org on 2018/12/16 16:53:39 UTC
svn commit: r1849037 - in
/subversion/branches/swig-py3/subversion/bindings/swig: core.i
include/svn_types.swg python/libsvn_swig_py/swigutil_py.c
Author: troycurtisjr
Date: Sun Dec 16 16:53:38 2018
New Revision: 1849037
URL: http://svn.apache.org/viewvc?rev=1849037&view=rev
Log:
On branch swig-py3: Address compiler warnings under Python 3.
Resolved compiler warnings relating to handling of const values when the SWIG
bindings are built under Python 3.
* subversion/bindings/swig/core.i
(const char *data, apr_size_t *len): Explicitly cast away const and document
the rationale.
(const void *value): Fix variable initialization from PyStr_AsString to be
const.
* subversion/bindings/swig/include/svn_types.swg
(const char *PTR, apr_size_t LEN): Explicitly cast away const and document the
rationale.
* subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.c
(svn_swig_py_make_file): Fix variable initialization from PyStr_AsString to be
const.
Modified:
subversion/branches/swig-py3/subversion/bindings/swig/core.i
subversion/branches/swig-py3/subversion/bindings/swig/include/svn_types.swg
subversion/branches/swig-py3/subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.c
Modified: subversion/branches/swig-py3/subversion/bindings/swig/core.i
URL: http://svn.apache.org/viewvc/subversion/branches/swig-py3/subversion/bindings/swig/core.i?rev=1849037&r1=1849036&r2=1849037&view=diff
==============================================================================
--- subversion/branches/swig-py3/subversion/bindings/swig/core.i (original)
+++ subversion/branches/swig-py3/subversion/bindings/swig/core.i Sun Dec 16 16:53:38 2018
@@ -447,7 +447,11 @@
"expecting a string for the buffer");
SWIG_fail;
}
- $1 = PyStr_AsUTF8AndSize($input, &temp);
+ /* Explicitly cast away const from PyStr_AsUTF8AndSize (in Python 3). The
+ swig generated argument ($1) here will be "char *", but since its only
+ use is to pass directly into the "const char *" argument of the wrapped
+ function, this is safe to do. */
+ $1 = (char *)PyStr_AsUTF8AndSize($input, &temp);
$2 = ($2_ltype)&temp;
}
#endif
@@ -501,7 +505,7 @@
}
if (PyStr_Check($input)) {
- char *value = PyStr_AsString($input);
+ const char *value = PyStr_AsString($input);
$1 = apr_pstrdup(_global_pool, value);
}
else if (PyLong_Check($input)) {
Modified: subversion/branches/swig-py3/subversion/bindings/swig/include/svn_types.swg
URL: http://svn.apache.org/viewvc/subversion/branches/swig-py3/subversion/bindings/swig/include/svn_types.swg?rev=1849037&r1=1849036&r2=1849037&view=diff
==============================================================================
--- subversion/branches/swig-py3/subversion/bindings/swig/include/svn_types.swg (original)
+++ subversion/branches/swig-py3/subversion/bindings/swig/include/svn_types.swg Sun Dec 16 16:53:38 2018
@@ -469,7 +469,11 @@ svn_ ## TYPE ## _swig_rb_closed(VALUE se
PyErr_SetString(PyExc_TypeError, "expecting a string");
SWIG_fail;
}
- $1 = PyStr_AsUTF8AndSize($input, &pyStrLen);
+ /* Explicitly cast away const from PyStr_AsUTF8AndSize (in Python 3). The
+ swig generated argument ($1) here will be "char *", but since its only
+ use is to pass directly into the "const char *" argument of the wrapped
+ function, this is safe to do. */
+ $1 = (char *)PyStr_AsUTF8AndSize($input, &pyStrLen);
$2 = pyStrLen;
}
#endif
Modified: subversion/branches/swig-py3/subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.c
URL: http://svn.apache.org/viewvc/subversion/branches/swig-py3/subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.c?rev=1849037&r1=1849036&r2=1849037&view=diff
==============================================================================
--- subversion/branches/swig-py3/subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.c (original)
+++ subversion/branches/swig-py3/subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.c Sun Dec 16 16:53:38 2018
@@ -2511,7 +2511,7 @@ apr_file_t *svn_swig_py_make_file(PyObje
if (PyStr_Check(py_file))
{
/* input is a path -- just open an apr_file_t */
- char* fname = PyStr_AsString(py_file);
+ const char* fname = PyStr_AsString(py_file);
apr_err = apr_file_open(&apr_file, fname,
APR_CREATE | APR_READ | APR_WRITE,
APR_OS_DEFAULT, pool);