git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@13014 626c5289-ae23-0410-ae9c-e8d60b6d4f22
23 lines
519 B
OpenEdge ABL
23 lines
519 B
OpenEdge ABL
/*
|
|
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
|