Author: mcpierce
Date: Fri May 10 14:20:35 2013
New Revision: 1481021
URL: http://svn.apache.org/r1481021
Log:
QPID-4826: Patch Perl bindings memory leak
Marked the VariantToPerl() method in swig_perl_typemaps.i as returning a
new object, which indicates to the Perl bindings that it needs to keep
track of the return value for garbage collection.
Also removed the Swig 1.3.32 minimum restriction to enable building on
RHEL5 systems.
Modified:
qpid/trunk/qpid/cpp/bindings/CMakeLists.txt
qpid/trunk/qpid/cpp/include/qpid/swig_perl_typemaps.i
Modified: qpid/trunk/qpid/cpp/bindings/CMakeLists.txt
URL:
http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/bindings/CMakeLists.txt?rev=1481021&r1=1481020&r2=1481021&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/bindings/CMakeLists.txt (original)
+++ qpid/trunk/qpid/cpp/bindings/CMakeLists.txt Fri May 10 14:20:35 2013
@@ -69,47 +69,41 @@ if ((${CMAKE_MAJOR_VERSION} EQUAL 2) AND
endif (PERL_FOUND)
endif ((${CMAKE_MAJOR_VERSION} EQUAL 2) AND (${CMAKE_MINOR_VERSION} LESS 8))
-set (SWIG_MINIMUM_VERSION "1.3.32")
-
if (SWIG_FOUND)
- if (${SWIG_VERSION} VERSION_LESS ${SWIG_MINIMUM_VERSION})
- message("Found Swig < ${SWIG_MINIMUM_VERSION} - skipping language
bindings")
- else()
- set(CMAKE_SWIG_FLAGS "-w361,362,401,467,503")
-
- if (PYTHONLIBS_FOUND)
- message("Building Python bindings")
- execute_process(COMMAND ${PYTHON_EXECUTABLE}
- -c "from distutils.sysconfig import get_python_lib;
print get_python_lib(True, prefix='${CMAKE_INSTALL_PREFIX}')"
- OUTPUT_VARIABLE PYTHON_SITEARCH_PACKAGES
- OUTPUT_STRIP_TRAILING_WHITESPACE)
-
- add_subdirectory(qpid/python)
- add_subdirectory(qmf2/python)
- add_subdirectory(qmf/python)
- endif (PYTHONLIBS_FOUND)
-
- if (RUBY_FOUND)
- message("Building Ruby bindings")
- execute_process(COMMAND ${RUBY_EXECUTABLE} -r rbconfig -e "puts
RbConfig::CONFIG['prefix']"
- OUTPUT_VARIABLE RUBY_PREFIX
- OUTPUT_STRIP_TRAILING_WHITESPACE)
- string(REPLACE ${RUBY_PREFIX} ${CMAKE_INSTALL_PREFIX}
RUBY_PFX_ARCH_DIR ${RUBY_SITEARCH_DIR})
-# string(REPLACE ${RUBY_PREFIX} ${CMAKE_INSTALL_PREFIX}
RUBY_PFX_ARCH_DIR ${RUBY_ARCH_DIR})
- add_subdirectory(qpid/ruby)
- add_subdirectory(qmf2/ruby)
- add_subdirectory(qmf/ruby)
- endif (RUBY_FOUND)
-
- if (PERL_FOUND)
- message("Building Perl bindings")
- execute_process(COMMAND ${PERL_EXECUTABLE} "-V::prefix:"
- OUTPUT_VARIABLE QPERL_PREFIX
- OUTPUT_STRIP_TRAILING_WHITESPACE)
- string(REGEX REPLACE "'(.*)'" "\\1" PERL_PREFIX ${QPERL_PREFIX})
- string(REPLACE ${PERL_PREFIX} ${CMAKE_INSTALL_PREFIX} PERL_PFX_ARCHLIB
${PERL_ARCHLIB})
-
- add_subdirectory(qpid/perl)
- endif (PERL_FOUND)
- endif (${SWIG_VERSION} VERSION_LESS ${SWIG_MINIMUM_VERSION})
+ set(CMAKE_SWIG_FLAGS "-w361,362,401,467,503")
+
+ if (PYTHONLIBS_FOUND)
+ message("Building Python bindings")
+ execute_process(COMMAND ${PYTHON_EXECUTABLE}
+ -c "from distutils.sysconfig import get_python_lib;
print get_python_lib(True, prefix='${CMAKE_INSTALL_PREFIX}')"
+ OUTPUT_VARIABLE PYTHON_SITEARCH_PACKAGES
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+
+ add_subdirectory(qpid/python)
+ add_subdirectory(qmf2/python)
+ add_subdirectory(qmf/python)
+ endif (PYTHONLIBS_FOUND)
+
+ if (RUBY_FOUND)
+ message("Building Ruby bindings")
+ execute_process(COMMAND ${RUBY_EXECUTABLE} -r rbconfig -e "puts
RbConfig::CONFIG['prefix']"
+ OUTPUT_VARIABLE RUBY_PREFIX
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+ string(REPLACE ${RUBY_PREFIX} ${CMAKE_INSTALL_PREFIX} RUBY_PFX_ARCH_DIR
${RUBY_SITEARCH_DIR})
+# string(REPLACE ${RUBY_PREFIX} ${CMAKE_INSTALL_PREFIX} RUBY_PFX_ARCH_DIR
${RUBY_ARCH_DIR})
+ add_subdirectory(qpid/ruby)
+ add_subdirectory(qmf2/ruby)
+ add_subdirectory(qmf/ruby)
+ endif (RUBY_FOUND)
+
+ if (PERL_FOUND)
+ message("Building Perl bindings")
+ execute_process(COMMAND ${PERL_EXECUTABLE} "-V::prefix:"
+ OUTPUT_VARIABLE QPERL_PREFIX
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+ string(REGEX REPLACE "'(.*)'" "\\1" PERL_PREFIX ${QPERL_PREFIX})
+ string(REPLACE ${PERL_PREFIX} ${CMAKE_INSTALL_PREFIX} PERL_PFX_ARCHLIB
${PERL_ARCHLIB})
+
+ add_subdirectory(qpid/perl)
+ endif (PERL_FOUND)
endif (SWIG_FOUND)
Modified: qpid/trunk/qpid/cpp/include/qpid/swig_perl_typemaps.i
URL:
http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/include/qpid/swig_perl_typemaps.i?rev=1481021&r1=1481020&r2=1481021&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/include/qpid/swig_perl_typemaps.i (original)
+++ qpid/trunk/qpid/cpp/include/qpid/swig_perl_typemaps.i Fri May 10 14:20:35
2013
@@ -17,6 +17,7 @@
* under the License.
*/
+%newobject VariantToPerl;
%wrapper %{
#include <stdarg.h>
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]