| /* This file tests the pointer-in-out typemap library, |
| currently only available for Guile. */ |
| |
| %module pointer_in_out |
| |
| %include "pointer-in-out.i" |
| |
| TYPEMAP_POINTER_INPUT_OUTPUT(int *, int-pointer); |
| |
| int consume_int_pointer(int **INPUT); |
| void produce_int_pointer(int **OUTPUT, int value1, int value2); |
| void frobnicate_int_pointer(int **INOUT); |
| |
| %{ |
| |
| int consume_int_pointer(int **INPUT) |
| { |
| return **INPUT; |
| } |
| |
| void produce_int_pointer(int **OUTPUT, int value1, int value2) |
| { |
| int *foo = malloc(2 * sizeof(int)); |
| foo[0] = value1; |
| foo[1] = value2; |
| *OUTPUT = foo; |
| } |
| |
| void frobnicate_int_pointer(int **INOUT) |
| { |
| /* advance the pointer */ |
| (*INOUT)++; |
| } |
| |
| %} |