From: <wsf...@us...> - 2008-02-27 13:07:29
|
Revision: 10268 http://swig.svn.sourceforge.net/swig/?rev=10268&view=rev Author: wsfulton Date: 2008-02-27 05:07:26 -0800 (Wed, 27 Feb 2008) Log Message: ----------- test more global function pointer variables Modified Paths: -------------- trunk/Examples/test-suite/funcptr.i trunk/Examples/test-suite/r/funcptr_runme.R Modified: trunk/Examples/test-suite/funcptr.i =================================================================== --- trunk/Examples/test-suite/funcptr.i 2008-02-27 13:06:46 UTC (rev 10267) +++ trunk/Examples/test-suite/funcptr.i 2008-02-27 13:07:26 UTC (rev 10268) @@ -6,6 +6,8 @@ extern void do(int (*op)(int (*i)(double, double), int j)); */ +%typemap(in) int (int intres) { /* in typemap int */ intres = 0; } +%typemap(in) double (double doubleres) { /* in typemap double */ doubleres = 0; } %inline %{ typedef double (*DistFun)(double* data, int r, int c, int i, int j, void *xdata); @@ -22,19 +24,34 @@ return a+b; } -int sub(int a, int b) { +int subtract(int a, int b) { return a-b; } -int mul(int a, int b) { +int multiply(int a, int b) { return a*b; } int *nowt() { return 0; } +struct MyStruct {}; +typedef struct MyStruct * MyStructPtr; +MyStructPtr mystructptr() { + return 0; +} + +typedef int * Integer; + int (*funcvar)(int,int) = add; int * (*funcvar2)() = nowt; int * (*funcvar3)(void) = nowt; +Integer (*funcvar4)() = nowt; +MyStructPtr (*funcvar5)() = mystructptr; + +void (*pfunc0)(); +int (*pfuncA)(); +void (*pfunc1)(int); +void (*pfunc2)(int, double); %} Modified: trunk/Examples/test-suite/r/funcptr_runme.R =================================================================== --- trunk/Examples/test-suite/r/funcptr_runme.R 2008-02-27 13:06:46 UTC (rev 10267) +++ trunk/Examples/test-suite/r/funcptr_runme.R 2008-02-27 13:07:26 UTC (rev 10268) @@ -3,5 +3,5 @@ source("funcptr.R") cacheMetaData(1) unittest(do_op(1, 3, add), 4) -unittest(do_op(2, 3, mul), 6) +unittest(do_op(2, 3, multiply), 6) unittest(do_op(2, 3, funcvar()), 5) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |