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 2017/12/29 02:05:44 UTC

svn commit: r1819460 - in /subversion/branches/swig-py3/subversion/bindings/swig: ./ include/ python/libsvn_swig_py/

Author: troycurtisjr
Date: Fri Dec 29 02:05:43 2017
New Revision: 1819460

URL: http://svn.apache.org/viewvc?rev=1819460&view=rev
Log:
On branch swig-py3: Move py3c compat fixes to all swig modules.

Resolves compile warnings in Python 3 build for all modules, not just those in
swigutil_py.c.

* subversion/bindings/swig/python/libsvn_swig_py/swigutil_py3c.h:
  New file containing the py3c compat undef fixes previously in swigutil_py.c.

* subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.c:
  Moved py3c compat undef fixes to swigutil_py3c.h and include the header.

* subversion/bindings/swig/include/svn_global.swg:
  Add swigutil_py3c.h include to ensure all swig modules get the compat fixes.

* subversion/bindings/swig/core.i,
  subversion/bindings/swig/include/svn_string.swg,
  subversion/bindings/swig/include/svn_types.swg,
  subversion/bindings/swig/svn_client.i,
  subversion/bindings/swig/svn_delta.i,
  subversion/bindings/swig/svn_diff.i,
  subversion/bindings/swig/svn_fs.i,
  subversion/bindings/swig/svn_ra.i,
  subversion/bindings/swig/svn_repos.i,
  subversion/bindings/swig/svn_wc.i:
  Remove redundant py3c.h inclusion, now that svn_global.swg includes
  swigutil_py3c.h.

Found By: danielsh


Added:
    subversion/branches/swig-py3/subversion/bindings/swig/python/libsvn_swig_py/swigutil_py3c.h   (with props)
Modified:
    subversion/branches/swig-py3/subversion/bindings/swig/core.i
    subversion/branches/swig-py3/subversion/bindings/swig/include/svn_global.swg
    subversion/branches/swig-py3/subversion/bindings/swig/include/svn_string.swg
    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
    subversion/branches/swig-py3/subversion/bindings/swig/svn_client.i
    subversion/branches/swig-py3/subversion/bindings/swig/svn_delta.i
    subversion/branches/swig-py3/subversion/bindings/swig/svn_diff.i
    subversion/branches/swig-py3/subversion/bindings/swig/svn_fs.i
    subversion/branches/swig-py3/subversion/bindings/swig/svn_ra.i
    subversion/branches/swig-py3/subversion/bindings/swig/svn_repos.i
    subversion/branches/swig-py3/subversion/bindings/swig/svn_wc.i

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=1819460&r1=1819459&r2=1819460&view=diff
==============================================================================
--- subversion/branches/swig-py3/subversion/bindings/swig/core.i (original)
+++ subversion/branches/swig-py3/subversion/bindings/swig/core.i Fri Dec 29 02:05:43 2017
@@ -49,12 +49,6 @@
 %}
 #endif
 
-#ifdef SWIGPYTHON
-%{
-#include <py3c.h>
-%}
-#endif
-
 /* ### for now, let's ignore this thing. */
 %ignore svn_prop_t;
 

Modified: subversion/branches/swig-py3/subversion/bindings/swig/include/svn_global.swg
URL: http://svn.apache.org/viewvc/subversion/branches/swig-py3/subversion/bindings/swig/include/svn_global.swg?rev=1819460&r1=1819459&r2=1819460&view=diff
==============================================================================
--- subversion/branches/swig-py3/subversion/bindings/swig/include/svn_global.swg (original)
+++ subversion/branches/swig-py3/subversion/bindings/swig/include/svn_global.swg Fri Dec 29 02:05:43 2017
@@ -54,6 +54,7 @@
 #ifdef SWIGPYTHON
 %{
 #include "swigutil_py.h"
+#include "swigutil_py3c.h"
 %}
 #endif
 #ifdef SWIGPERL

Modified: subversion/branches/swig-py3/subversion/bindings/swig/include/svn_string.swg
URL: http://svn.apache.org/viewvc/subversion/branches/swig-py3/subversion/bindings/swig/include/svn_string.swg?rev=1819460&r1=1819459&r2=1819460&view=diff
==============================================================================
--- subversion/branches/swig-py3/subversion/bindings/swig/include/svn_string.swg (original)
+++ subversion/branches/swig-py3/subversion/bindings/swig/include/svn_string.swg Fri Dec 29 02:05:43 2017
@@ -32,8 +32,6 @@ typedef struct svn_string_t svn_string_t
 */
 #ifdef SWIGPYTHON
 
-#include <py3c.h>
-
 %typemap(argout) RET_STRING {
     PyObject *s;
     if (*$1 == NULL) {

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=1819460&r1=1819459&r2=1819460&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 Fri Dec 29 02:05:43 2017
@@ -28,10 +28,6 @@
 %include svn_string.swg
 %include svn_containers.swg
 
-#ifdef SWIGPYTHON
-#include <py3c.h>
-#endif
-
 /* -----------------------------------------------------------------------
    Generic handling for "type **" parameters.  Almost all such parameters
    are OUTPUT parameters.  Handling is as follows:

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=1819460&r1=1819459&r2=1819460&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 Fri Dec 29 02:05:43 2017
@@ -52,13 +52,7 @@
 #include "swig_python_external_runtime.swg"
 #include "swigutil_py.h"
 
-/* This py3c include needs to be after the swig includes. */
 #if PY_VERSION_HEX >= 0x03000000
-/* SWIG and py3c both define a few compat defines, so need to undef
-   here to give preference to the py3c versions. */
-#undef PyLong_FromSize_t
-#undef PyLong_AsLong
-#undef PyInt_Check
 
 /* In Python 3 use the bytes format character for raw data */
 #define SVN_SWIG_BYTES_FMT "y"
@@ -70,7 +64,7 @@
 
 #endif
 
-#include <py3c.h>
+#include <swigutil_py3c.h>
 
 /* Py_ssize_t for old Pythons */
 /* This code is as recommended by: */

Added: subversion/branches/swig-py3/subversion/bindings/swig/python/libsvn_swig_py/swigutil_py3c.h
URL: http://svn.apache.org/viewvc/subversion/branches/swig-py3/subversion/bindings/swig/python/libsvn_swig_py/swigutil_py3c.h?rev=1819460&view=auto
==============================================================================
--- subversion/branches/swig-py3/subversion/bindings/swig/python/libsvn_swig_py/swigutil_py3c.h (added)
+++ subversion/branches/swig-py3/subversion/bindings/swig/python/libsvn_swig_py/swigutil_py3c.h Fri Dec 29 02:05:43 2017
@@ -0,0 +1,48 @@
+/*
+ * swigutil_py3c.c: utility header for the SWIG Python binding interface with
+ * the py3c library
+ *
+ * ====================================================================
+ *    Licensed to the Apache Software Foundation (ASF) under one
+ *    or more contributor license agreements.  See the NOTICE file
+ *    distributed with this work for additional information
+ *    regarding copyright ownership.  The ASF licenses this file
+ *    to you under the Apache License, Version 2.0 (the
+ *    "License"); you may not use this file except in compliance
+ *    with the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *    Unless required by applicable law or agreed to in writing,
+ *    software distributed under the License is distributed on an
+ *    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *    KIND, either express or implied.  See the License for the
+ *    specific language governing permissions and limitations
+ *    under the License.
+ * ====================================================================
+ */
+
+#ifndef SVN_SWIG_SWIGUTIL_PY3C_H
+#define SVN_SWIG_SWIGUTIL_PY3C_H
+
+/* This file needs to be included after any swig includes, as it undefines
+ * certain conflicting items, where the py3c variants are preferred over those
+ * defined within SWIG.
+ */
+
+#include <Python.h>
+
+#if PY_VERSION_HEX >= 0x03000000
+/* SWIG and py3c both define a few Python 3compat defines, so undef here to give
+   preference to the py3c versions. */
+#undef PyLong_FromSize_t
+#undef PyLong_AsLong
+#undef PyInt_FromLong
+#undef PyInt_AsLong
+#undef PyInt_Check
+
+#endif
+
+#include <py3c.h>
+
+#endif

Propchange: subversion/branches/swig-py3/subversion/bindings/swig/python/libsvn_swig_py/swigutil_py3c.h
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: subversion/branches/swig-py3/subversion/bindings/swig/svn_client.i
URL: http://svn.apache.org/viewvc/subversion/branches/swig-py3/subversion/bindings/swig/svn_client.i?rev=1819460&r1=1819459&r2=1819460&view=diff
==============================================================================
--- subversion/branches/swig-py3/subversion/bindings/swig/svn_client.i (original)
+++ subversion/branches/swig-py3/subversion/bindings/swig/svn_client.i Fri Dec 29 02:05:43 2017
@@ -34,11 +34,6 @@
 %import svn_delta.i
 %import svn_wc.i
 
-#ifdef SWIGPYTHON
-%{
-#include <py3c.h>
-%}
-#endif
 /* Ignore platform-specific auth functions */
 %ignore svn_client_get_windows_simple_provider;
 

Modified: subversion/branches/swig-py3/subversion/bindings/swig/svn_delta.i
URL: http://svn.apache.org/viewvc/subversion/branches/swig-py3/subversion/bindings/swig/svn_delta.i?rev=1819460&r1=1819459&r2=1819460&view=diff
==============================================================================
--- subversion/branches/swig-py3/subversion/bindings/swig/svn_delta.i (original)
+++ subversion/branches/swig-py3/subversion/bindings/swig/svn_delta.i Fri Dec 29 02:05:43 2017
@@ -32,12 +32,6 @@
 %include svn_global.swg
 %import core.i
 
-#ifdef SWIGPYTHON
-%{
-#include <py3c.h>
-%}
-#endif
-
 #ifdef SWIGRUBY
 %ignore svn_compat_wrap_file_rev_handler;
 #endif

Modified: subversion/branches/swig-py3/subversion/bindings/swig/svn_diff.i
URL: http://svn.apache.org/viewvc/subversion/branches/swig-py3/subversion/bindings/swig/svn_diff.i?rev=1819460&r1=1819459&r2=1819460&view=diff
==============================================================================
--- subversion/branches/swig-py3/subversion/bindings/swig/svn_diff.i (original)
+++ subversion/branches/swig-py3/subversion/bindings/swig/svn_diff.i Fri Dec 29 02:05:43 2017
@@ -32,12 +32,6 @@
 %include svn_global.swg
 %import core.i
 
-#ifdef SWIGPYTHON
-%{
-#include <py3c.h>
-%}
-#endif
-
 /* -----------------------------------------------------------------------
    %apply-ing of typemaps defined elsewhere
 */

Modified: subversion/branches/swig-py3/subversion/bindings/swig/svn_fs.i
URL: http://svn.apache.org/viewvc/subversion/branches/swig-py3/subversion/bindings/swig/svn_fs.i?rev=1819460&r1=1819459&r2=1819460&view=diff
==============================================================================
--- subversion/branches/swig-py3/subversion/bindings/swig/svn_fs.i (original)
+++ subversion/branches/swig-py3/subversion/bindings/swig/svn_fs.i Fri Dec 29 02:05:43 2017
@@ -33,12 +33,6 @@
 %import core.i
 %import svn_delta.i
 
-#ifdef SWIGPYTHON
-%{
-#include <py3c.h>
-%}
-#endif
-
 /* -----------------------------------------------------------------------
    do not generate any constructors or destructors (of structures) -- all
    structures are going to come /out/ of the FS (so we don't need to

Modified: subversion/branches/swig-py3/subversion/bindings/swig/svn_ra.i
URL: http://svn.apache.org/viewvc/subversion/branches/swig-py3/subversion/bindings/swig/svn_ra.i?rev=1819460&r1=1819459&r2=1819460&view=diff
==============================================================================
--- subversion/branches/swig-py3/subversion/bindings/swig/svn_ra.i (original)
+++ subversion/branches/swig-py3/subversion/bindings/swig/svn_ra.i Fri Dec 29 02:05:43 2017
@@ -33,12 +33,6 @@
 %import core.i
 %import svn_delta.i
 
-#ifdef SWIGPYTHON
-%{
-#include <py3c.h>
-%}
-#endif
-
 /* Bad pool convention, also these are not public interfaces, they were
    simply placed in the public header by mistake. */
 %ignore svn_ra_svn_init;

Modified: subversion/branches/swig-py3/subversion/bindings/swig/svn_repos.i
URL: http://svn.apache.org/viewvc/subversion/branches/swig-py3/subversion/bindings/swig/svn_repos.i?rev=1819460&r1=1819459&r2=1819460&view=diff
==============================================================================
--- subversion/branches/swig-py3/subversion/bindings/swig/svn_repos.i (original)
+++ subversion/branches/swig-py3/subversion/bindings/swig/svn_repos.i Fri Dec 29 02:05:43 2017
@@ -34,12 +34,6 @@
 %import svn_delta.i
 %import svn_fs.i
 
-#ifdef SWIGPYTHON
-%{
-#include <py3c.h>
-%}
-#endif
-
 /* -----------------------------------------------------------------------
    %apply-ing of typemaps defined elsewhere
 */

Modified: subversion/branches/swig-py3/subversion/bindings/swig/svn_wc.i
URL: http://svn.apache.org/viewvc/subversion/branches/swig-py3/subversion/bindings/swig/svn_wc.i?rev=1819460&r1=1819459&r2=1819460&view=diff
==============================================================================
--- subversion/branches/swig-py3/subversion/bindings/swig/svn_wc.i (original)
+++ subversion/branches/swig-py3/subversion/bindings/swig/svn_wc.i Fri Dec 29 02:05:43 2017
@@ -34,12 +34,6 @@
 %import svn_delta.i
 %import svn_ra.i
 
-#ifdef SWIGPYTHON
-%{
-#include <py3c.h>
-%}
-#endif
-
 /* -----------------------------------------------------------------------
    ### these functions require a pool, which we don't have immediately
    ### handy. just eliminate these funcs for now.