Fix shared_ptr typemaps for use with %pythonnondynamic
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@10344 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
parent
a37115f55d
commit
69d6ce4f33
5 changed files with 48 additions and 1 deletions
|
|
@ -1,6 +1,10 @@
|
|||
Version 1.3.35 (in progress)
|
||||
============================
|
||||
|
||||
04/05/2008: wsfulton
|
||||
[Python] Fix shared_ptr typemaps so that %pythonnondynamic can be used. Also corrects
|
||||
display of the proxy class type. Reported by Robert Lupton.
|
||||
|
||||
04/04/2008: olly
|
||||
[Python] Add %newobject reference to python memory management subsection of manual
|
||||
(patch from mdbeachy in SF#1894610).
|
||||
|
|
@ -70,3 +74,7 @@ Version 1.3.35 (in progress)
|
|||
|
||||
02/29/2008: wsfulton
|
||||
[Python] Add shared_ptr varin/varout typemaps for wrapping global variables.
|
||||
|
||||
02/25/2008: wsfulton
|
||||
Fix $wrapname to work in %exception (fixes some wrap:name assertions)
|
||||
|
||||
|
|
|
|||
|
|
@ -178,6 +178,7 @@ CPP_TEST_CASES += \
|
|||
langobj \
|
||||
li_attribute \
|
||||
li_boost_shared_ptr \
|
||||
li_boost_shared_ptr_bits \
|
||||
li_carrays \
|
||||
li_cdata \
|
||||
li_cpointer \
|
||||
|
|
|
|||
18
Examples/test-suite/li_boost_shared_ptr_bits.i
Normal file
18
Examples/test-suite/li_boost_shared_ptr_bits.i
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
%module li_boost_shared_ptr_bits
|
||||
|
||||
%include <boost_shared_ptr.i>
|
||||
|
||||
#if defined(SWIGPYTHON)
|
||||
%pythonnondynamic NonDynamic;
|
||||
#endif
|
||||
|
||||
SWIG_SHARED_PTR(NonDynamic, NonDynamic)
|
||||
|
||||
%inline %{
|
||||
#include <boost/shared_ptr.hpp>
|
||||
struct NonDynamic {
|
||||
int i;
|
||||
};
|
||||
boost::shared_ptr<NonDynamic> boing(boost::shared_ptr<NonDynamic> b) { return b; }
|
||||
%}
|
||||
|
||||
20
Examples/test-suite/python/li_boost_shared_ptr_bits_runme.py
Normal file
20
Examples/test-suite/python/li_boost_shared_ptr_bits_runme.py
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
from li_boost_shared_ptr_bits import *
|
||||
|
||||
def check(nd):
|
||||
nd.i = 200
|
||||
i = nd.i
|
||||
|
||||
try:
|
||||
nd.notexist = 100
|
||||
passed = 0
|
||||
except:
|
||||
passed = 1
|
||||
|
||||
if not passed:
|
||||
raise "Test failed"
|
||||
|
||||
nd = NonDynamic()
|
||||
check(nd)
|
||||
b = boing(nd)
|
||||
check(b)
|
||||
|
||||
|
|
@ -69,7 +69,7 @@
|
|||
}
|
||||
%typemap(out, fragment="SWIG_null_deleter") CONST TYPE * {
|
||||
SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > *smartresult = $1 ? new SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE >($1 SWIG_NO_NULL_DELETER_$owner) : 0;
|
||||
%set_output(SWIG_NewPointerObj(%as_voidptr(smartresult), $descriptor(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< TYPE > *), SWIG_POINTER_OWN));
|
||||
%set_output(SWIG_NewPointerObj(%as_voidptr(smartresult), $descriptor(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< TYPE > *), $owner | SWIG_POINTER_OWN));
|
||||
}
|
||||
|
||||
%typemap(varin) CONST TYPE * {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue