From abeef193d25050bdf3e93fc46a5d07acbe97d997 Mon Sep 17 00:00:00 2001 From: William S Fulton Date: Tue, 24 Aug 2004 21:44:54 +0000 Subject: [PATCH] missing throws typemaps added git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@6133 626c5289-ae23-0410-ae9c-e8d60b6d4f22 --- SWIG/Lib/perl5/perl5.swg | 8 ++++++++ SWIG/Lib/perl5/std_string.i | 8 ++++++++ SWIG/Lib/tcl/std_string.i | 9 +++++++++ SWIG/Lib/tcl/tcl8.swg | 10 ++++++++++ 4 files changed, 35 insertions(+) diff --git a/SWIG/Lib/perl5/perl5.swg b/SWIG/Lib/perl5/perl5.swg index fcb1d3d7e..e6854c7d9 100644 --- a/SWIG/Lib/perl5/perl5.swg +++ b/SWIG/Lib/perl5/perl5.swg @@ -538,6 +538,14 @@ SWIG_croakSV(esv); } +%typemap(throws) SWIGTYPE, SWIGTYPE &, SWIGTYPE *, SWIGTYPE [ANY] %{ + SWIG_croak("C++ $1_type exception thrown"); +%} + +%typemap(throws) enum SWIGTYPE %{ + SWIG_croak("C++ $1_type exception thrown"); +%} + %typemap(throws) char * { SWIG_croak($1); } diff --git a/SWIG/Lib/perl5/std_string.i b/SWIG/Lib/perl5/std_string.i index 2754cbbbe..fe471022d 100644 --- a/SWIG/Lib/perl5/std_string.i +++ b/SWIG/Lib/perl5/std_string.i @@ -63,5 +63,13 @@ namespace std { ++argvi; } + %typemap(throws) const string & { + SWIG_croak($1.c_str()); + } + + %typemap(throws) string { + SWIG_croak($1.c_str()); + } + } diff --git a/SWIG/Lib/tcl/std_string.i b/SWIG/Lib/tcl/std_string.i index c636c0388..ad61399f3 100644 --- a/SWIG/Lib/tcl/std_string.i +++ b/SWIG/Lib/tcl/std_string.i @@ -44,4 +44,13 @@ namespace std { Tcl_SetStringObj($result,(char*)$1->c_str(),$1->length()); } + %typemap(throws) string { + Tcl_SetObjResult(interp, Tcl_NewStringObj((char*) $1.c_str(), -1)); + SWIG_fail; + } + + %typemap(throws) const string & { + Tcl_SetObjResult(interp, Tcl_NewStringObj((char*) $1.c_str(), -1)); + SWIG_fail; + } } diff --git a/SWIG/Lib/tcl/tcl8.swg b/SWIG/Lib/tcl/tcl8.swg index 292dc3e30..16d9591ff 100644 --- a/SWIG/Lib/tcl/tcl8.swg +++ b/SWIG/Lib/tcl/tcl8.swg @@ -547,6 +547,16 @@ SWIG_fail; } +%typemap(throws) SWIGTYPE, SWIGTYPE &, SWIGTYPE *, SWIGTYPE [ANY] { + Tcl_SetObjResult(interp, Tcl_NewStringObj((char*) "$1_type", -1)); + SWIG_fail; +} + +%typemap(throws) enum SWIGTYPE { + Tcl_SetObjResult(interp, Tcl_NewStringObj((char*) "$1_type", -1)); + SWIG_fail; +} + %typemap(throws) char * { Tcl_SetObjResult(interp, Tcl_NewStringObj((char*) $1, -1)); SWIG_fail;