blob: 7e605c5d549b5ff2759bd31dd7f9c75003749124 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
/*
A modification of factory.swg from the generic UTL library.
*/
%include <typemaps/swigmacros.swg>
%define %_factory_dispatch(Type)
if (!dcast) {
Type *dobj = dynamic_cast<Type *>($1);
if (dobj) {
dcast = 1;
SWIG_NewPointerObj(L, dobj, $descriptor(Type *), $owner); SWIG_arg++;
}
}%enddef
%define %factory(Method,Types...)
%typemap(out) Method {
int dcast = 0;
%formacro(%_factory_dispatch, Types)
if (!dcast) {
SWIG_NewPointerObj(L, $1, $descriptor, $owner); SWIG_arg++;
}
}%enddef
|