From: <wsf...@us...> - 2008-01-25 22:03:15
|
Revision: 10220 http://swig.svn.sourceforge.net/swig/?rev=10220&view=rev Author: wsfulton Date: 2008-01-25 14:03:12 -0800 (Fri, 25 Jan 2008) Log Message: ----------- Fix ARRAYSOFCLASSES bug reported by Kevin Mills where the changes made to an array element in the C layer are not reflected back into Java Modified Paths: -------------- trunk/Examples/test-suite/java/java_lib_arrays_runme.java trunk/Examples/test-suite/java_lib_arrays.i Modified: trunk/Examples/test-suite/java/java_lib_arrays_runme.java =================================================================== --- trunk/Examples/test-suite/java/java_lib_arrays_runme.java 2008-01-25 22:01:55 UTC (rev 10219) +++ trunk/Examples/test-suite/java/java_lib_arrays_runme.java 2008-01-25 22:03:12 UTC (rev 10220) @@ -55,6 +55,12 @@ if (java_lib_arrays.extract_ptr(array_yet_another_struct, 0) != 222.333) throw new RuntimeException("extract_ptr 0 failed"); if (java_lib_arrays.extract_ptr(array_yet_another_struct, 1) != 444.555) throw new RuntimeException("extract_ptr 1 failed"); + java_lib_arrays.modifyYAS(array_yet_another_struct, array_yet_another_struct.length); + for (int i=0; i<2; ++i) { + if (array_yet_another_struct[i].getSimple().getDouble_field() != array_struct[i].getDouble_field() * 10.0) + throw new RuntimeException("modifyYAS failed "); + } + java_lib_arrays.toestest(array_toe, array_toe, array_toe); // Now set the array members and check that they have been set correctly Modified: trunk/Examples/test-suite/java_lib_arrays.i =================================================================== --- trunk/Examples/test-suite/java_lib_arrays.i 2008-01-25 22:01:55 UTC (rev 10219) +++ trunk/Examples/test-suite/java_lib_arrays.i 2008-01-25 22:03:12 UTC (rev 10220) @@ -36,6 +36,14 @@ double extract_ptr(struct YetAnotherStruct *yas, int index) { return yas[index].simple.double_field; } +void modifyYAS(struct YetAnotherStruct yas[], int size) { + int i; + for (i=0; i<size; ++i) { + SimpleStruct ss; + ss.double_field = yas[i].simple.double_field * 10.0; + yas[i].simple = ss; + } +} %} %apply ARRAYSOFENUMS[ANY] { toe[ANY] } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |