diff options
Diffstat (limited to 'Examples/test-suite/typemap_arrays.i')
-rw-r--r-- | Examples/test-suite/typemap_arrays.i | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/Examples/test-suite/typemap_arrays.i b/Examples/test-suite/typemap_arrays.i new file mode 100644 index 000000000..dd7994405 --- /dev/null +++ b/Examples/test-suite/typemap_arrays.i @@ -0,0 +1,30 @@ +%module typemap_arrays + +// Test that previously non-working array typemaps special variables are working + +%typemap(in) SWIGTYPE[ANY] { + _should_not_be_used_and_will_not_compile_ +} + +// Check $basemangle expands to _p_int and $basetype expands to int * +%typemap(in) int *nums[3] (int *temp[3]) { + $basetype var1$basemangle = new int(10); + $basetype var2$basemangle = new int(20); + $basetype var3$basemangle = new int(30); + temp[0] = var1_p_int; + temp[1] = var2_p_int; + temp[2] = var3_p_int; + $1 = temp; +} + +%inline %{ +int sumA(int *nums[3]) { + int sum = 0; + for (int i=0; i<3; ++i) { + int *p = nums[i]; + if (p) + sum += *p; + } + return sum; +} +%} |