/* This interface file tests whether SWIG handles pointer-reference (*&) arguments. SWIG 1.3a5 signals a syntax error. */ %module pointer_reference %warnfilter(SWIGWARN_TYPEMAP_SWIGTYPELEAK); /* memory leak when setting a ptr/ref variable */ #ifdef SWIGGUILE /* A silly testing typemap for feeding a doubly indirect integer */ %typemap(in) int *&XYZZY (int temp1, int *temp2) { temp1 = scm_to_int($input); temp2 = &temp1; $1 = &temp2; }; #endif %inline %{ void foo(int *&XYZZY) {} %} // Test pointer reference typemaps shipped with SWIG (add in SWIG 1.3.28 for many languages) %inline %{ struct Struct { int value; Struct(int v) : value(v) {} static Struct instance; static Struct *pInstance; }; void set(Struct *const& s) { Struct::instance = *s; } Struct *const& get() { return Struct::pInstance; } int overloading(int i) { return 111; } int overloading(Struct *const& s) { return 222; } %} %{ Struct Struct::instance = Struct(10); Struct *Struct::pInstance = &Struct::instance; %}