Blob Blame Raw

Fugly hack to fix build with SWIG 3.0.x.  The pre-processor seems to 
expand the %define correctly with only the change to %{..%}, but 
%extend still breaks somehow.

https://github.com/swig/swig/issues/379

--- subversion-1.8.13/subversion/bindings/swig/include/proxy.swg.swigpython
+++ subversion-1.8.13/subversion/bindings/swig/include/proxy.swg
@@ -62,7 +62,7 @@
 
 /* Default code for all wrapped proxy classes in Python */
 %define %proxy_pythoncode(TYPE)
-%pythoncode {
+%pythoncode %{
   def set_parent_pool(self, parent_pool=None):
     """Create a new proxy object for TYPE"""
     import libsvn.core, weakref
@@ -83,13 +83,10 @@
 
     value = _swig_getattr(self, self.__class__, name)
 
-    # If we got back a different object than we have, we need to copy all our
-    # metadata into it, so that it looks identical
     members = self.__dict__.get("_members")
     if members is not None:
       _copy_metadata_deep(value, members.get(name))
         
-    # Verify that the new object is good
     _assert_valid_deep(value)
 
     return value
@@ -98,13 +95,10 @@
     """Set an attribute on this object"""
     self.assert_valid()
 
-    # Save a copy of the object, so that the garbage
-    # collector won't kill the object while it's in
-    # SWIG-land
     self.__dict__.setdefault("_members",{})[name] = value
 
     return _swig_setattr(self, self.__class__, name, value)
-}
+%}
 %enddef
 
 /* Define a proxy for wrapping an existing struct */