From: <wsf...@us...> - 2009-04-30 06:12:34
|
Revision: 11199 http://swig.svn.sourceforge.net/swig/?rev=11199&view=rev Author: wsfulton Date: 2009-04-30 06:12:32 +0000 (Thu, 30 Apr 2009) Log Message: ----------- add test for optimal attribute in out typemap Modified Paths: -------------- trunk/Examples/test-suite/common.mk Added Paths: ----------- trunk/Examples/test-suite/csharp/typemap_out_optimal_runme.cs trunk/Examples/test-suite/java/typemap_out_optimal_runme.java trunk/Examples/test-suite/python/typemap_out_optimal_runme.py trunk/Examples/test-suite/typemap_out_optimal.i Modified: trunk/Examples/test-suite/common.mk =================================================================== --- trunk/Examples/test-suite/common.mk 2009-04-30 00:13:14 UTC (rev 11198) +++ trunk/Examples/test-suite/common.mk 2009-04-30 06:12:32 UTC (rev 11199) @@ -371,6 +371,7 @@ typemap_namespace \ typemap_ns_using \ typemap_numinputs \ + typemap_out_optimal \ typemap_variables \ typemap_various \ typename \ Added: trunk/Examples/test-suite/csharp/typemap_out_optimal_runme.cs =================================================================== --- trunk/Examples/test-suite/csharp/typemap_out_optimal_runme.cs (rev 0) +++ trunk/Examples/test-suite/csharp/typemap_out_optimal_runme.cs 2009-04-30 06:12:32 UTC (rev 11199) @@ -0,0 +1,13 @@ +using System; +using typemap_out_optimalNamespace; + +public class typemap_out_optimal_runme { + + public static XX x = null; + public static void Main() { + XX.debug = false; + x = XX.create(); + } + +} + Property changes on: trunk/Examples/test-suite/csharp/typemap_out_optimal_runme.cs ___________________________________________________________________ Added: svn:executable + * Added: trunk/Examples/test-suite/java/typemap_out_optimal_runme.java =================================================================== --- trunk/Examples/test-suite/java/typemap_out_optimal_runme.java (rev 0) +++ trunk/Examples/test-suite/java/typemap_out_optimal_runme.java 2009-04-30 06:12:32 UTC (rev 11199) @@ -0,0 +1,21 @@ + +import typemap_out_optimal.*; + +public class typemap_out_optimal_runme { + + static { + try { + System.loadLibrary("typemap_out_optimal"); + } catch (UnsatisfiedLinkError e) { + System.err.println("Native code library failed to load. See the chapter on Dynamic Linking Problems in the SWIG Java documentation for help.\n" + e); + System.exit(1); + } + } + + public static XX x = null; + public static void main(String argv[]) { + XX.setDebug(false); + x = XX.create(); + } +} + Added: trunk/Examples/test-suite/python/typemap_out_optimal_runme.py =================================================================== --- trunk/Examples/test-suite/python/typemap_out_optimal_runme.py (rev 0) +++ trunk/Examples/test-suite/python/typemap_out_optimal_runme.py 2009-04-30 06:12:32 UTC (rev 11199) @@ -0,0 +1,5 @@ +from typemap_out_optimal import * + +cvar.XX_debug = False +x = XX.create() + Added: trunk/Examples/test-suite/typemap_out_optimal.i =================================================================== --- trunk/Examples/test-suite/typemap_out_optimal.i (rev 0) +++ trunk/Examples/test-suite/typemap_out_optimal.i 2009-04-30 06:12:32 UTC (rev 11199) @@ -0,0 +1,38 @@ +// Test the optimal attribute in the out typemap +%module typemap_out_optimal + +// Just the following languages tested +#if defined (SWIGCSHARP) +%typemap(out, optimal="1") SWIGTYPE %{ + $result = new $1_ltype((const $1_ltype &)$1); +%} +#elif defined (SWIGJAVA) +%typemap(out, optimal="1") SWIGTYPE %{ + *($&1_ltype*)&$result = new $1_ltype((const $1_ltype &)$1); +%} +#elif defined (SWIGUTL) +%typemap(out,noblock="1", optimal="1") SWIGTYPE { + %set_output(SWIG_NewPointerObj(%new_copy($1, $ltype), $&descriptor, SWIG_POINTER_OWN | %newpointer_flags)); +} +#endif + +%ignore XX::operator=; + +%inline %{ +#include <iostream> +using namespace std; + +struct XX { + XX() { cout << "XX()" << endl; } + XX(int i) { if (debug) cout << "XX(" << i << ")" << endl; } + XX(const XX &other) { cout << "XX(const XX &)" << endl; } + XX& operator =(const XX &other) { cout << "operator=(const XX &)" << endl; return *this; } + ~XX() { if (debug) cout << "~XX()" << endl; } + static XX create() { + return XX(123); + } + static bool debug; +}; +bool XX::debug = true; +%} + This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |