diff lib/swig/swigwin-2.0.11/Lib/lua/factory.i @ 1899:b3009adc0e2f

Adding swig, gitignore, hgignore
author Nomad
date Mon, 21 Oct 2013 10:42:27 +0200
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lib/swig/swigwin-2.0.11/Lib/lua/factory.i	Mon Oct 21 10:42:27 2013 +0200
@@ -0,0 +1,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