diff options
| author | Darryl L. Pierce <mcpierce@apache.org> | 2013-05-10 14:20:35 +0000 |
|---|---|---|
| committer | Darryl L. Pierce <mcpierce@apache.org> | 2013-05-10 14:20:35 +0000 |
| commit | 4cc1566f75b7a4e89ba44df9998eebf7d0f65ce1 (patch) | |
| tree | 40bdfb88d8e8f8884326e93a73bb3ff4a464bc25 | |
| parent | 4640dc1ece124c51b855eda3f7048f775187fed9 (diff) | |
| download | qpid-python-4cc1566f75b7a4e89ba44df9998eebf7d0f65ce1.tar.gz | |
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.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1481021 13f79535-47bb-0310-9956-ffa450edef68
| -rw-r--r-- | qpid/cpp/bindings/CMakeLists.txt | 68 | ||||
| -rw-r--r-- | qpid/cpp/include/qpid/swig_perl_typemaps.i | 1 |
2 files changed, 32 insertions, 37 deletions
diff --git a/qpid/cpp/bindings/CMakeLists.txt b/qpid/cpp/bindings/CMakeLists.txt index 69a6330c2a..784cc03ea5 100644 --- a/qpid/cpp/bindings/CMakeLists.txt +++ b/qpid/cpp/bindings/CMakeLists.txt @@ -69,47 +69,41 @@ if ((${CMAKE_MAJOR_VERSION} EQUAL 2) AND (${CMAKE_MINOR_VERSION} LESS 8)) 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") + 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) + 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) + 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 (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}) + 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}) + add_subdirectory(qpid/perl) + endif (PERL_FOUND) endif (SWIG_FOUND) diff --git a/qpid/cpp/include/qpid/swig_perl_typemaps.i b/qpid/cpp/include/qpid/swig_perl_typemaps.i index c1e1d53d94..da24bfe402 100644 --- a/qpid/cpp/include/qpid/swig_perl_typemaps.i +++ b/qpid/cpp/include/qpid/swig_perl_typemaps.i @@ -17,6 +17,7 @@ * under the License. */ +%newobject VariantToPerl; %wrapper %{ #include <stdarg.h> |
