123456789101112131415161718192021222324252627282930 |
- /* -----------------------------------------------------------------------------
- * dexception.swg
- *
- * Typemaps used for propagating C++ exceptions to D.
- * ----------------------------------------------------------------------------- */
- // Code which is inserted into the dout typemaps and class constructors via
- // excode if exceptions can be thrown.
- %define SWIGEXCODE "\n if ($imdmodule.SwigPendingException.isPending) throw $imdmodule.SwigPendingException.retrieve();" %enddef
- %typemap(throws, canthrow=1) int,
- long,
- short,
- unsigned int,
- unsigned long,
- unsigned short
- %{ char error_msg[256];
- sprintf(error_msg, "C++ $1_type exception thrown, value: %d", $1);
- SWIG_DSetPendingException(SWIG_DException, error_msg);
- return $null; %}
- %typemap(throws, canthrow=1) SWIGTYPE, SWIGTYPE &, SWIGTYPE *, SWIGTYPE [ANY],
- enum SWIGTYPE, const enum SWIGTYPE &
- %{ (void)$1;
- SWIG_DSetPendingException(SWIG_DException, "C++ $1_type exception thrown");
- return $null; %}
- %typemap(throws, canthrow=1) char *
- %{ SWIG_DSetPendingException(SWIG_DException, $1);
- return $null; %}
|