diff options
author | Vince Harron <vharron@google.com> | 2015-06-02 18:58:48 -0700 |
---|---|---|
committer | Vince Harron <vharron@google.com> | 2015-06-02 18:58:48 -0700 |
commit | b46a6ee1ee38582dd3af57ebe1b6d5e4158c34e0 (patch) | |
tree | b342a62eea47f607a7c0846c731bf151c1503359 /share/swig/2.0.11/tcl/tcltypemaps.swg | |
parent | 6c85ed3bdac5c6dd65ad8cef83fc4fc7ef99a6c9 (diff) | |
download | linux-x86-b46a6ee1ee38582dd3af57ebe1b6d5e4158c34e0.tar.gz |
Adding binaries for 2.0.11HEADstudio-master-dev_before_27917934studio-master-dev_before_26911779studio-3.1.2studio-2.3studio-2.0-rc1studio-2.0studio-1.5studio-1.4gradle_3.1.2gradle_2.3.0gradle_2.0.0studio-master-releasestudio-1.4-releasestudio-1.4-devstudio-1.3-releasestudio-1.3-devmastermain
Diffstat (limited to 'share/swig/2.0.11/tcl/tcltypemaps.swg')
-rw-r--r-- | share/swig/2.0.11/tcl/tcltypemaps.swg | 90 |
1 files changed, 90 insertions, 0 deletions
diff --git a/share/swig/2.0.11/tcl/tcltypemaps.swg b/share/swig/2.0.11/tcl/tcltypemaps.swg new file mode 100644 index 0000000..2b4e06e --- /dev/null +++ b/share/swig/2.0.11/tcl/tcltypemaps.swg @@ -0,0 +1,90 @@ +/* ------------------------------------------------------------ + * Typemap specializations for Tcl + * ------------------------------------------------------------ */ + +/* ------------------------------------------------------------ + * Fragment section + * ------------------------------------------------------------ */ + +/* + In Tcl we need to pass the interp value, so we define the decl/call + macros as needed. +*/ + +#define SWIG_AS_DECL_ARGS SWIG_TCL_DECL_ARGS_2 +#define SWIG_AS_CALL_ARGS SWIG_TCL_CALL_ARGS_2 + + +/* Include fundamental fragment definitions */ +%include <typemaps/fragments.swg> + +/* Look for user fragments file. */ +%include <tclfragments.swg> + +/* Tcl fragments for primitive types */ +%include <tclprimtypes.swg> + +/* Tcl fragments for char* strings */ +%include <tclstrings.swg> + + +/* ------------------------------------------------------------ + * Unified typemap section + * ------------------------------------------------------------ */ + +/* No director support in Tcl */ +#ifdef SWIG_DIRECTOR_TYPEMAPS +#undef SWIG_DIRECTOR_TYPEMAPS +#endif + + +/* Tcl types */ +#define SWIG_Object Tcl_Obj * + +/* Overload of the output/constant/exception handling */ + +/* output */ +#define %set_output(obj) Tcl_SetObjResult(interp,obj) + +/* append output */ +#define %append_output(obj) Tcl_ListObjAppendElement(interp,Tcl_GetObjResult(interp),obj) + +/* set constant */ +#define SWIG_SetConstant(name, obj) SWIG_Tcl_SetConstantObj(interp, name, obj) + +/* raise */ +#define SWIG_Raise(obj,type,desc) SWIG_Tcl_SetErrorObj(interp,type,obj) + + +/* Include the unified typemap library */ +%include <typemaps/swigtypemaps.swg> + + +/* ------------------------------------------------------------ + * Tcl extra typemaps / typemap overrides + * ------------------------------------------------------------ */ + +#if 1 +// Old 1.3.25 typemaps needed to avoid premature object deletion +%typemap(out,noblock=1) SWIGTYPE *INSTANCE, SWIGTYPE &INSTANCE, SWIGTYPE INSTANCE[] { + Tcl_SetObjResult(interp, SWIG_NewInstanceObj( %as_voidptr($1), $1_descriptor,0)); +} + +%typemap(out) SWIGTYPE *DYNAMIC, SWIGTYPE &DYNAMIC { + swig_type_info *ty = SWIG_TypeDynamicCast($1_descriptor,%as_voidptrptr(&$1)); + Tcl_SetObjResult(interp,SWIG_NewInstanceObj(%as_voidptr($1), ty,0)); +} + +#endif + +%typemap(throws,noblock=1) SWIGTYPE CLASS { + SWIG_set_result(SWIG_NewInstanceObj(%as_voidptr(SWIG_new_copy($1, $1_ltype)), $&1_descriptor, 1)); + SWIG_fail; +} + +%typemap(out) SWIGTYPE = SWIGTYPE INSTANCE; +%typemap(out) SWIGTYPE * = SWIGTYPE *INSTANCE; +%typemap(out) SWIGTYPE *const = SWIGTYPE *; +%typemap(out) SWIGTYPE & = SWIGTYPE &INSTANCE; +%typemap(out) SWIGTYPE [] = SWIGTYPE INSTANCE[]; +%typemap(varout) SWIGTYPE = SWIGTYPE INSTANCE; |