add disown.i and li_attribute.i
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@7726 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
parent
46c43c51cd
commit
1fa14f74a7
12 changed files with 98 additions and 5 deletions
47
Examples/test-suite/disown.i
Normal file
47
Examples/test-suite/disown.i
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
%module disown
|
||||
|
||||
%{
|
||||
#include <iostream>
|
||||
%}
|
||||
|
||||
#pragma SWIG nowarn=453
|
||||
|
||||
%apply SWIGTYPE *DISOWN { A *disown };
|
||||
|
||||
%inline {
|
||||
struct A
|
||||
{
|
||||
~A()
|
||||
{
|
||||
// std::cout <<"delete A" << std::endl;
|
||||
}
|
||||
|
||||
|
||||
};
|
||||
|
||||
class B
|
||||
{
|
||||
A *_a;
|
||||
public:
|
||||
B() : _a(0)
|
||||
{
|
||||
}
|
||||
|
||||
~B()
|
||||
{
|
||||
if (_a) {
|
||||
// std::cout <<"delete A from B" << std::endl;
|
||||
delete _a;
|
||||
}
|
||||
// std::cout <<"delete B" << std::endl;
|
||||
}
|
||||
|
||||
int acquire(A *disown)
|
||||
{
|
||||
// std::cout <<"acquire A" << std::endl;
|
||||
_a = disown;
|
||||
return 5;
|
||||
}
|
||||
|
||||
};
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue