Update for C#
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@4898 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
parent
4667d7bf2a
commit
53862f4f5f
1 changed files with 11 additions and 3 deletions
|
|
@ -1,7 +1,7 @@
|
||||||
/* File : example.i */
|
/* File : example.i */
|
||||||
%module dynamic_cast
|
%module dynamic_cast
|
||||||
|
|
||||||
#ifndef SWIGJAVA
|
#if !defined(SWIGJAVA) && !defined(SWIGCSHARP)
|
||||||
%apply SWIGTYPE *DYNAMIC { Foo * };
|
%apply SWIGTYPE *DYNAMIC { Foo * };
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
@ -15,17 +15,25 @@ public:
|
||||||
};
|
};
|
||||||
%}
|
%}
|
||||||
|
|
||||||
#ifdef SWIGJAVA
|
#if defined(SWIGJAVA) || defined(SWIGCSHARP)
|
||||||
%typemap(out) Foo *blah {
|
%typemap(out) Foo *blah {
|
||||||
Bar *downcast = dynamic_cast<Bar *>($1);
|
Bar *downcast = dynamic_cast<Bar *>($1);
|
||||||
*(Bar **)&$result = downcast;
|
*(Bar **)&$result = downcast;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(SWIGJAVA)
|
||||||
%typemap(javaout) Foo * {
|
%typemap(javaout) Foo * {
|
||||||
return new Bar($jnicall, $owner);
|
return new Bar($jnicall, $owner);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if defined(SWIGCSHARP)
|
||||||
|
%typemap(csout) Foo * {
|
||||||
|
return new Bar($imcall, $owner);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
%inline %{
|
%inline %{
|
||||||
|
|
||||||
class Bar : public Foo {
|
class Bar : public Foo {
|
||||||
|
|
@ -43,7 +51,7 @@ char *do_test(Bar *b) {
|
||||||
}
|
}
|
||||||
%}
|
%}
|
||||||
|
|
||||||
#ifndef SWIGJAVA
|
#if !defined(SWIGJAVA) && !defined(SWIGCSHARP)
|
||||||
// A general purpose function for dynamic casting of a Foo *
|
// A general purpose function for dynamic casting of a Foo *
|
||||||
%{
|
%{
|
||||||
static swig_type_info *
|
static swig_type_info *
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue