swig/Examples/test-suite/pointer_reference.i
Geert Janssens b819d2a91e Drop guilegh interface
All of guile's interface files now use the scm interface.
This should not affect any users. Swig generated code
using the scm interface can be mixed with gh interface
using user code.
It does simplify maintenance of the guile swig code though.
2013-04-28 22:06:24 +02:00

50 lines
1 KiB
OpenEdge ABL

/* 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;
%}