/trunk/Examples/test-suite/disown.i
# · Swig · 47 lines · 37 code · 10 blank · 0 comment · 0 complexity · b231ee23be0ccfc017ef374f19a705e2 MD5 · raw file
- %module disown
- %{
- #include <iostream>
- %}
- #pragma SWIG nowarn=SWIGWARN_TYPEMAP_APPLY_UNDEF
- %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;
- }
-
- };
- }