From ff6b144f30b8962096569f468d695391425bbb8f Mon Sep 17 00:00:00 2001 From: William S Fulton Date: Sat, 16 Jul 2011 14:43:04 +0000 Subject: [PATCH] Fix Python directorin typemap for PyObject * git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12760 626c5289-ae23-0410-ae9c-e8d60b6d4f22 --- CHANGES.current | 5 ++++- Examples/test-suite/python/Makefile.in | 1 + Examples/test-suite/python_director.i | 18 ++++++++++++++++++ Lib/typemaps/swigobject.swg | 2 +- 4 files changed, 24 insertions(+), 2 deletions(-) create mode 100644 Examples/test-suite/python_director.i diff --git a/CHANGES.current b/CHANGES.current index dda3e410d..503553f33 100644 --- a/CHANGES.current +++ b/CHANGES.current @@ -5,11 +5,14 @@ See the RELEASENOTES file for a summary of changes in each release. Version 2.0.5 (in progress) =========================== +2011-07-16: wsfulton + [python] Fix director typemap using PyObject *. + 2011-07-13: szager [python] Add all template parameters to map support code in std_map.i 2011-07-13: szager - Fix for bug 3324753: %rename member variables with -builtin. + [python] Fix for bug 3324753: %rename member variables with -builtin. 2011-07-01: wsfulton Fix some scope and symbol lookup problems when template default parameters are being diff --git a/Examples/test-suite/python/Makefile.in b/Examples/test-suite/python/Makefile.in index 185ca2298..e5d92626e 100644 --- a/Examples/test-suite/python/Makefile.in +++ b/Examples/test-suite/python/Makefile.in @@ -59,6 +59,7 @@ CPP_TEST_CASES += \ primitive_types \ python_abstractbase \ python_append \ + python_director \ python_nondynamic \ python_overload_simple_cast \ python_richcompare \ diff --git a/Examples/test-suite/python_director.i b/Examples/test-suite/python_director.i new file mode 100644 index 000000000..c85113afa --- /dev/null +++ b/Examples/test-suite/python_director.i @@ -0,0 +1,18 @@ +%module(directors="1") python_director + +%feature("director"); +%inline %{ + class IFactoryFuncs { + public: + IFactoryFuncs() {} + virtual ~IFactoryFuncs() {} + + virtual PyObject * process(PyObject *pyobj) { + return pyobj; + } + + void process_again(const PyObject *& pyobj) { + } + }; +%} + diff --git a/Lib/typemaps/swigobject.swg b/Lib/typemaps/swigobject.swg index e89b63026..4a7965d96 100644 --- a/Lib/typemaps/swigobject.swg +++ b/Lib/typemaps/swigobject.swg @@ -30,7 +30,7 @@ #if defined(SWIG_DIRECTOR_TYPEMAPS) -%typemap(directorin) SWIG_Object "$input = $1_name"; +%typemap(directorin) SWIG_Object "$input = $1_name;"; %typemap(directorout) SWIG_Object "$result = $input;"; #endif /* SWIG_DIRECTOR_TYPEMAPS */