Few C typemaps fixes (still using experimental approach).
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/branches/gsoc2008-maciekd@10658 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
parent
b7340dd4d6
commit
542c21b6fe
7 changed files with 84 additions and 41 deletions
|
|
@ -4,7 +4,10 @@ Bar foo_ret_val() {
|
|||
return Bar();
|
||||
}
|
||||
|
||||
Bar* foo_ret_ptr(Bar* bar) {
|
||||
Bar *foo_ret_ptr(Bar *bar) {
|
||||
return bar;
|
||||
}
|
||||
|
||||
Bar &foo_ret_ref(Bar &bar) {
|
||||
return bar;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -11,6 +11,6 @@ public:
|
|||
};
|
||||
|
||||
Bar foo_ret_val();
|
||||
//Bar& foo_ret_ref(Bar* bar);
|
||||
Bar& foo_ret_ref(Bar& bar);
|
||||
Bar* foo_ret_ptr(Bar* bar);
|
||||
|
||||
|
|
|
|||
|
|
@ -3,9 +3,13 @@
|
|||
#include "example_proxy.h"
|
||||
|
||||
int main(int argc, char** argv) {
|
||||
Bar b = foo_ret_val();
|
||||
//Bar * bp = foo_ret_ptr(NULL);
|
||||
printf("x = %d\n", Bar_get(&b));
|
||||
Bar *b = foo_ret_val();
|
||||
printf("x = %d\n", Bar_get(b));
|
||||
Bar *bp = foo_ret_ptr(NULL);
|
||||
Bar *br = foo_ret_ref(new_Bar());
|
||||
|
||||
delete_Bar(b);
|
||||
delete_Bar(br);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -3,15 +3,18 @@
|
|||
#include "c_arguments/c_arguments_proxy.h"
|
||||
|
||||
int main(int argc, char **argv) {
|
||||
A* a = new_A();
|
||||
if (A_foo(a, 0) != 1)
|
||||
fprintf(stderr, "call to A_foo() failed\n");
|
||||
A *a = new_A();
|
||||
|
||||
A *a1, *a2, *a3;
|
||||
|
||||
a1 = foo_1(a);
|
||||
a2 = foo_2(a);
|
||||
a3 = foo_3(a);
|
||||
|
||||
delete_A(a);
|
||||
|
||||
int ***array = (int ***) 0;
|
||||
|
||||
foo_1(array);
|
||||
|
||||
delete_A(a1);
|
||||
delete_A(a2);
|
||||
delete_A(a3);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -4,17 +4,20 @@
|
|||
|
||||
class A {
|
||||
public:
|
||||
A() {}
|
||||
int foo(int i) {
|
||||
return i+1;
|
||||
}
|
||||
A() : i(0) {}
|
||||
int i;
|
||||
};
|
||||
|
||||
void foo(A a, A &ra, A *pa, char c, char *str, char **pstr, char ***ppstri) {
|
||||
A foo_1(A *a) {
|
||||
return *a;
|
||||
}
|
||||
|
||||
void foo_1(int ***a) {
|
||||
A * foo_2(A *a) {
|
||||
return a;
|
||||
}
|
||||
|
||||
A & foo_3(A *a) {
|
||||
return *a;
|
||||
}
|
||||
|
||||
%}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue