From 164cff72178b7cdd4ea4f41375f5b09ec7e49a61 Mon Sep 17 00:00:00 2001 From: William S Fulton Date: Thu, 12 Aug 2004 21:17:08 +0000 Subject: [PATCH] *** empty log message *** git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@6090 626c5289-ae23-0410-ae9c-e8d60b6d4f22 --- SWIG/CHANGES.current | 64 +++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 63 insertions(+), 1 deletion(-) diff --git a/SWIG/CHANGES.current b/SWIG/CHANGES.current index b2679651d..8fdecf20d 100644 --- a/SWIG/CHANGES.current +++ b/SWIG/CHANGES.current @@ -1,6 +1,18 @@ Version 1.3.22 (in progress) ================================== +08/12/2004: wsfulton + Patch #837715 from Ben Reser to correctly detect Python lib directory + on 64 bit systems. + +08/12/2004: wsfulton + [C# and Java] Prevent memory leaks in the case of early return + from wrapper methods using const std::string & parameters. Modified + Mark Traudt patch #951565. + +08/12/2004: wsfulton + Bug #943783 with patch fixes php char * out typemap NULL values. + 08/03/2004: Ahmon Dancy [allegrocl] Additional case mode fixes. Also, make sure @@ -17,7 +29,7 @@ Version 1.3.22 (in progress) swigrun.i. 07/23/2004: wsfulton - [C#] Bug #917601 Maping C++ bool fix from Mark Traudt + [C#] Bug #917601 Mapping C++ bool fix from Mark Traudt 07/23/2004: wsfulton RPM fixes for latest CVS version including removal of runtime @@ -938,3 +950,53 @@ Version 1.3.22 (in progress) throw; } +01/12/2004: wsfulton on behalf of mmatus (marcelo matus) + if a method uses %exception and the method requires the use + of the throws typemap, the code in a throws typemap will be + generated inside the try body. For example: + + %exception method { + try { + // method action + $action + } catch (int i) { + // method int catch handler + } catch (...) { + // method generic catch handler + } + } + %typemap(throws) Except %{ + // throws typemap Except catch handler + %} + + %inline %{ + class Except {}; + void method(int i) throw (Except); + + Will generate: + + { + try { + // method action + try { + method(arg1); + } + catch(Except &_e) { + // throws typemap Except catch handler + + } + + } catch (int i) { + // method int catch handler + } catch (...) { + // method generic catch handler + } + } + + + As can be seen, the inner try catch block is for the throws typemaps. + Previously, this was reversed so that the inner try catch block + was the %exception code. In the example above, it would have been + impossible to catch Except as the catch all (...) would catch the + exception instead. +