From: <ma...@us...> - 2008-07-17 00:52:15
|
Revision: 10671 http://swig.svn.sourceforge.net/swig/?rev=10671&view=rev Author: maciekd Date: 2008-07-17 00:52:11 +0000 (Thu, 17 Jul 2008) Log Message: ----------- Exceptions support for C. exception_order test shows how to use type information to achieve correct catching order. Examples cleanup. Modified Paths: -------------- branches/gsoc2008-maciekd/Examples/c/check.list branches/gsoc2008-maciekd/Examples/c/class/runme.c branches/gsoc2008-maciekd/Examples/c/simple/example.c branches/gsoc2008-maciekd/Examples/c/simple/example.i branches/gsoc2008-maciekd/Examples/c/simple/runme.c branches/gsoc2008-maciekd/Examples/test-suite/exception_order.i branches/gsoc2008-maciekd/Lib/c/c.swg branches/gsoc2008-maciekd/Lib/exception.i branches/gsoc2008-maciekd/Source/Modules/c.cxx Added Paths: ----------- branches/gsoc2008-maciekd/Examples/test-suite/c/exception_order_runme.c Removed Paths: ------------- branches/gsoc2008-maciekd/Examples/c/arguments/ branches/gsoc2008-maciekd/Examples/c/reference/ branches/gsoc2008-maciekd/Examples/c/return/ branches/gsoc2008-maciekd/Examples/test-suite/c/c_arguments_runme.c branches/gsoc2008-maciekd/Examples/test-suite/c_arguments.i Modified: branches/gsoc2008-maciekd/Examples/c/check.list =================================================================== --- branches/gsoc2008-maciekd/Examples/c/check.list 2008-07-16 22:23:45 UTC (rev 10670) +++ branches/gsoc2008-maciekd/Examples/c/check.list 2008-07-17 00:52:11 UTC (rev 10671) @@ -1,4 +1,3 @@ # see top-level Makefile.in class -reference simple Modified: branches/gsoc2008-maciekd/Examples/c/class/runme.c =================================================================== --- branches/gsoc2008-maciekd/Examples/c/class/runme.c 2008-07-16 22:23:45 UTC (rev 10670) +++ branches/gsoc2008-maciekd/Examples/c/class/runme.c 2008-07-17 00:52:11 UTC (rev 10671) @@ -38,6 +38,7 @@ printf("%d shapes remain\n", Shape_nshapes_get()); printf("Goodbye\n"); - return 0; + + SWIG_exit(0); } Modified: branches/gsoc2008-maciekd/Examples/c/simple/example.c =================================================================== --- branches/gsoc2008-maciekd/Examples/c/simple/example.c 2008-07-16 22:23:45 UTC (rev 10670) +++ branches/gsoc2008-maciekd/Examples/c/simple/example.c 2008-07-17 00:52:11 UTC (rev 10671) @@ -1,16 +1,8 @@ /* File : example.c */ /* A global variable */ -double Foo = 3.0; +double Foo = 3.0; -double *Foo_ptr = &Foo; -char *my_str = "hello, world!"; -char *array_of_strs[] = { "one", "two" }; - -char *get_str(int i, void* ptr, float ff) { - return array_of_strs[i]; -} - /* Compute the greatest common divisor of positive integers */ int gcd(int x, int y) { int g; @@ -22,3 +14,5 @@ } return g; } + + Modified: branches/gsoc2008-maciekd/Examples/c/simple/example.i =================================================================== --- branches/gsoc2008-maciekd/Examples/c/simple/example.i 2008-07-16 22:23:45 UTC (rev 10670) +++ branches/gsoc2008-maciekd/Examples/c/simple/example.i 2008-07-17 00:52:11 UTC (rev 10671) @@ -2,11 +2,6 @@ %module example %inline %{ +extern int gcd(int x, int y); extern double Foo; -extern double *Foo_ptr; -extern char *my_str; -extern char **array_of_strs; -extern char *get_str(int i, void* ptr, float ff); -extern int gcd(int x, int y); %} - Modified: branches/gsoc2008-maciekd/Examples/c/simple/runme.c =================================================================== --- branches/gsoc2008-maciekd/Examples/c/simple/runme.c 2008-07-16 22:23:45 UTC (rev 10670) +++ branches/gsoc2008-maciekd/Examples/c/simple/runme.c 2008-07-17 00:52:11 UTC (rev 10671) @@ -6,10 +6,6 @@ int a = 35; int b = 15; printf("Foo is %f\n", Foo); - printf("Foo by ptr is \%f\n", *Foo_ptr); - printf("my_str is: %s\n", my_str); - printf("GCD(%d, %d)=%d\n", a, b, gcd(a, b)); - printf("array_of_strs contains %s and %s\n", get_str(0, 0, 0), get_str(1, 0, 0)); - return 0; + SWIG_exit(0); } Deleted: branches/gsoc2008-maciekd/Examples/test-suite/c/c_arguments_runme.c =================================================================== --- branches/gsoc2008-maciekd/Examples/test-suite/c/c_arguments_runme.c 2008-07-16 22:23:45 UTC (rev 10670) +++ branches/gsoc2008-maciekd/Examples/test-suite/c/c_arguments_runme.c 2008-07-17 00:52:11 UTC (rev 10671) @@ -1,20 +0,0 @@ -#include <stdio.h> - -#include "c_arguments/c_arguments_proxy.h" - -int main(int argc, char **argv) { - A *a = new_A(); - - A *a1, *a2, *a3; - - a1 = foo_1(a); - a2 = foo_2(a); - a3 = foo_3(a); - - delete_A(a); - delete_A(a1); - delete_A(a2); - delete_A(a3); - return 0; -} - Added: branches/gsoc2008-maciekd/Examples/test-suite/c/exception_order_runme.c =================================================================== --- branches/gsoc2008-maciekd/Examples/test-suite/c/exception_order_runme.c (rev 0) +++ branches/gsoc2008-maciekd/Examples/test-suite/c/exception_order_runme.c 2008-07-17 00:52:11 UTC (rev 10671) @@ -0,0 +1,65 @@ +#include <stdio.h> + +#include "exception_order/exception_order_proxy.h" + +int main() { + A* a = new_A(); + + SWIG_try { + A_foo(a); + } + SWIG_catch(E1) { + + } + SWIG_catch(SWIG_AnyException) { + fprintf(stderr, "foo: bad exception order\n"); + } + SWIG_endtry; + + SWIG_try { + A_bar(a); + } + SWIG_catch(E2) { + + } + SWIG_catch(SWIG_AnyException) { + fprintf(stderr, "bar: bad exception order\n"); + } + SWIG_endtry; + + SWIG_try { + A_foobar(a); + } + SWIG_catch(SWIG_AnyException) { + if (strcmp(SWIG_exception.msg, "postcatch unknown") != 0) { + fprintf(stderr, "bad exception order\n"); + SWIG_throw_msg(SWIG_exception.klass, SWIG_exception.msg); + } + } + SWIG_endtry; + + SWIG_try { + A_barfoo(a, 1); + } + SWIG_catch(E1) { + + } + SWIG_catch(SWIG_AnyException) { + fprintf(stderr, "barfoo(1): bad exception order\n"); + } + SWIG_endtry; + + SWIG_try { + A_barfoo(a, 2); + } + SWIG_catch(E2) { + + } + SWIG_catch(SWIG_AnyException) { + fprintf(stderr, "barfoo(2): bad exception order\n"); + } + SWIG_endtry; + + SWIG_exit(0); +} + Deleted: branches/gsoc2008-maciekd/Examples/test-suite/c_arguments.i =================================================================== --- branches/gsoc2008-maciekd/Examples/test-suite/c_arguments.i 2008-07-16 22:23:45 UTC (rev 10670) +++ branches/gsoc2008-maciekd/Examples/test-suite/c_arguments.i 2008-07-17 00:52:11 UTC (rev 10671) @@ -1,23 +0,0 @@ -%module c_arguments - -%inline %{ - -class A { - public: - A() : i(0) {} - int i; -}; - -A foo_1(A *a) { - return *a; -} - -A * foo_2(A *a) { - return a; -} - -A & foo_3(A *a) { - return *a; -} - -%} Modified: branches/gsoc2008-maciekd/Examples/test-suite/exception_order.i =================================================================== --- branches/gsoc2008-maciekd/Examples/test-suite/exception_order.i 2008-07-16 22:23:45 UTC (rev 10670) +++ branches/gsoc2008-maciekd/Examples/test-suite/exception_order.i 2008-07-17 00:52:11 UTC (rev 10671) @@ -33,9 +33,22 @@ } #endif +/* + * Additional typemaps needed to handle exception order in C. + */ +#if defined(SWIGC) +%typemap(throws) SWIGTYPE { + SwigObj$1_basetype *_c_ex = _wrap_new_$1_basetype(); + SWIG_CThrowException(_c_ex, "C++ $1_type exception thrown"); +} + +%typemap(throws) ET<int>, ET<double> { + SWIG_CThrowException(NULL, "C++ $1_type exception thrown"); +} +#endif + %catches(E1,E2*,ET<int>,ET<double>,...) A::barfoo(int i); - %allowexception efoovar; %allowexception A::efoovar; Modified: branches/gsoc2008-maciekd/Lib/c/c.swg =================================================================== --- branches/gsoc2008-maciekd/Lib/c/c.swg 2008-07-16 22:23:45 UTC (rev 10670) +++ branches/gsoc2008-maciekd/Lib/c/c.swg 2008-07-17 00:52:11 UTC (rev 10671) @@ -13,23 +13,27 @@ #include <stdio.h> #include <string.h> #include <setjmp.h> + +typedef struct { + void *obj; + const char **typenames; +} SwigObj; %} // typemaps for function parameters -%typemap(ctype) void, short, int, long, char, float, double "$1_type" +%typemap(ctype) void, short, int, long, char, float, double, bool "$1_type" %typemap(ctype) unsigned short, unsigned int, unsigned long, unsigned char "$1_type" -%typemap(ctype) void *, short *, int *, long *, char *, float *, double * "$1_type" -%typemap(ctype) void **, short **, int **, long **, char **, float **, double ** "$1_type" +%typemap(ctype) void *, short *, int *, long *, char *, float *, double *, bool * "$1_type" +%typemap(ctype) void **, short **, int **, long **, char **, float **, double **, bool ** "$1_type" %typemap(ctype) unsigned short *, unsigned int *, unsigned long *, unsigned char * "$1_type" %typemap(ctype) unsigned short **, unsigned int **, unsigned long **, unsigned char ** "$1_type" -%typemap(ctype) short &, int &, long &, char &, float &, double & "$1_basetype *" +%typemap(ctype) short &, int &, long &, char &, float &, double &, bool & "$1_basetype *" %typemap(ctype) unsigned short &, unsigned int &, unsigned long &, unsigned char & "$1_basetype *" -%typemap(ctype) const short, const int, const long, const char, const float, const double "$1_type" +%typemap(ctype) const short, const int, const long, const char, const float, const double, const bool "$1_type" %typemap(ctype) const unsigned short, const unsigned int, const unsigned long, const unsigned char "$1_type" -%typemap(ctype) const void *, const short *, const int *, const long *, const char *, const float *, const double * "$1_type" -%typemap(ctype) bool "_Bool" -%typemap(ctype) void * [ANY], short * [ANY], int * [ANY], long * [ANY], char * [ANY], float * [ANY], double * [ANY] "$1 = ($1_basetype*) $input;" +%typemap(ctype) const void *, const short *, const int *, const long *, const char *, const float *, const double *, const bool * "$1_type" +%typemap(ctype) void * [ANY], short * [ANY], int * [ANY], long * [ANY], char * [ANY], float * [ANY], double * [ANY], bool * [ANY] "$1 = ($1_basetype*) $input;" %typemap(ctype) SWIGTYPE "struct SwigObj$1_type *" %typemap(ctype) SWIGTYPE * "struct SwigObj$1_type" %typemap(ctype) SWIGTYPE & "struct SwigObj$1_basetype*" @@ -81,13 +85,12 @@ // typemaps for return values -%typemap(couttype) void, short, int, long, char, float, double "$1_type" -%typemap(couttype) void *, short *, int *, long *, char *, float *, double* "$1_type" -%typemap(couttype) const short, const int, const long, const char, const float, const double "$1_basetype" -%typemap(couttype) const void *, const short *, const int *, const long *, const char *, const float *, const double * "$1_type" -%typemap(couttype) short &, int &, long &, char &, float &, double & "$1_basetype *" -%typemap(couttype) const short &, const int &, const long &, const char &, const float &, const double & "$1_basetype const *" -%typemap(couttype) bool "_Bool" +%typemap(couttype) void, short, int, long, char, float, double, bool "$1_type" +%typemap(couttype) void *, short *, int *, long *, char *, float *, double*, bool* "$1_type" +%typemap(couttype) const short, const int, const long, const char, const float, const double, const bool "$1_basetype" +%typemap(couttype) const void *, const short *, const int *, const long *, const char *, const float *, const double *, const bool * "$1_type" +%typemap(couttype) short &, int &, long &, char &, float &, double &, bool & "$1_basetype *" +%typemap(couttype) const short &, const int &, const long &, const char &, const float &, const double &, const bool & "$1_basetype const *" %typemap(couttype) SWIGTYPE "struct SwigObj$1_type *" %typemap(couttype) SWIGTYPE * "struct SwigObj$1_type" %typemap(couttype) SWIGTYPE & "struct SwigObj$1_basetype *" @@ -132,25 +135,33 @@ // exception handling +%typemap(throws) int, long, short, unsigned int, unsigned long, unsigned short { + char error_msg[256]; + sprintf(error_msg, "C++ $1_type exception thrown, value: %d", $1); + SWIG_CThrowException(0, error_msg); +} + +%typemap(throws) char *, const char * { + SWIG_CThrowException(0, $1); +} + +// this should match only non-built-in and non-template objects %typemap(throws) SWIGTYPE { - (void)_e; - SWIG_CThrowException(3, "C++ $1_type exception thrown"); + SWIG_CThrowException(0, "C++ $1_type exception thrown"); } %insert("runtime") %{ -#define SWIG_MAX_HANDLERS 256 #define SWIG_MAX_RT_STACK 256 -SWIGEXPORTC int SWIG_exception_code; +SWIGEXPORTC struct { + int code; + char *msg; + SwigObj *klass; +} SWIG_exception; + SWIGEXPORTC jmp_buf SWIG_rt_env; SWIGEXPORTC int SWIG_rt_init = 0; -SWIGINTERN struct { - int reg; - int code; - void (*fun)(); -} SWIG_Handlers[SWIG_MAX_HANDLERS]; -SWIGINTERN int SWIG_next_handler = 0; SWIGINTERN jmp_buf *SWIG_rt_stack_base = 0; SWIGINTERN jmp_buf *SWIG_rt_stack_ptr = 0; @@ -167,6 +178,13 @@ memcpy(SWIG_rt_env, SWIG_rt_stack_ptr, sizeof(SWIG_rt_env)); } +SWIGINTERN void SWIG_cleanup() { + if (SWIG_rt_stack_base) + free(SWIG_rt_stack_base); + if (SWIG_exception.msg) + free(SWIG_exception.msg); +} + #ifdef __cplusplus extern "C" { #endif @@ -175,93 +193,112 @@ SWIG_rt_stack_push(); } -SWIGEXPORTC int SWIG_rt_catch(int code) { - int result = (SWIG_exception_code == code); +SWIGEXPORTC int SWIG_rt_catch(const char *type) { + int result = 0; + if (!type || (strcmp("SWIG_AnyException", type) == 0)) { + result = 1; + } + else if (SWIG_exception.klass) { + int i = 0; + while (SWIG_exception.klass->typenames[i]) { + if (strcmp(SWIG_exception.klass->typenames[i++], type) == 0) { + result = 1; + break; + } + } + } if (result) SWIG_rt_stack_pop(); return result; } -SWIGEXPORTC void SWIG_rt_throw(int code) { - longjmp(SWIG_rt_env, code); +SWIGEXPORTC void SWIG_rt_throw(SwigObj *klass, const char *msg) { + if (SWIG_exception.msg) { + free(SWIG_exception.msg); + SWIG_exception.msg = (char *) 0; + } + if (msg) { + SWIG_exception.msg = (char *) malloc(strlen(msg)); + strcpy(SWIG_exception.msg, msg); + } + SWIG_exception.klass = klass; + longjmp(SWIG_rt_env, 1); } SWIGEXPORTC void SWIG_rt_endtry() { + if (SWIG_exception.msg) + free(SWIG_exception.msg); SWIG_rt_stack_pop(); - longjmp(SWIG_rt_env, SWIG_exception_code); + longjmp(SWIG_rt_env, SWIG_exception.code); } -SWIGEXPORTC void SWIG_Register_Handler(int code, void (*fun)()) { - if (SWIG_next_handler < SWIG_MAX_HANDLERS) { - int i = SWIG_next_handler++; - SWIG_Handlers[i].reg = 1; - SWIG_Handlers[i].code = code; - SWIG_Handlers[i].fun = fun; - } +SWIGEXPORTC int SWIG_exit(int code) { + SWIG_cleanup(); + exit(code); } -SWIGEXPORTC void SWIG_Unregister_Handler(int code) { - int i; - for (i = 0; i < SWIG_next_handler; ++i) { - if (SWIG_Handlers[i].code == code) - SWIG_Handlers[i].reg = 0; - } -} - #ifdef __cplusplus } #endif +SWIGINTERN void SWIG_terminate() { + fprintf(stderr, "Unhandled exception: %s\n%s (error code: %d)\nExitting...\n", + SWIG_exception.klass->typenames[0], + SWIG_exception.msg, + SWIG_exception.code); + SWIG_exit(SWIG_exception.code); +} + SWIGINTERN void SWIG_Runtime_init() { int i, code; if (!SWIG_rt_init) { SWIG_rt_init = 1; - for (i = 0; i < SWIG_MAX_HANDLERS; ++i) - SWIG_Handlers[i].reg = 0; SWIG_rt_stack_base = SWIG_rt_stack_ptr = (jmp_buf *) malloc(sizeof(jmp_buf) * SWIG_MAX_RT_STACK); - if (code = setjmp(SWIG_rt_env)) { - for (i = 0; i < SWIG_next_handler; ++i) { - if (SWIG_Handlers[i].reg) - if (SWIG_Handlers[i].code == code) - SWIG_Handlers[i].fun(); - } - fprintf(stderr, "Unhandled exception. Exitting...\n"); - exit(code); - } + if (SWIG_exception.code = setjmp(SWIG_rt_env)) + SWIG_terminate(); } } -SWIGINTERN void SWIG_CThrowException(int code, char *msg) { +SWIGINTERN void SWIG_CThrowException(void *klass, const char *msg) { if (SWIG_rt_init) - longjmp(SWIG_rt_env, code); - else { - fprintf(stderr, "%s\n", msg); - exit(code); - } + SWIG_rt_throw((SwigObj *) klass, msg); + else + SWIG_terminate(); } - %} %insert("proxy_header") %{ +// special value indicating any type of exception like 'catch(...)' +#define SWIG_AnyException "SWIG_AnyException" + +#include <stdbool.h> #include <setjmp.h> -void SWIG_Register_Handler(int code, void (*fun)()); -void SWIG_Unregister_Handler(int code); -int SWIG_exception_try(); -void SWIG_exception_throw(); +SWIGIMPORT jmp_buf SWIG_rt_env; -SWIGIMPORT jmp_buf SWIG_rt_env; -SWIGIMPORT int SWIG_exception_code; +typedef struct { + void *obj; + const char **typenames; +} SwigObj; + +SWIGIMPORT struct { + int code; + char *msg; + SwigObj *klass; +} SWIG_exception; + SWIGIMPORT void SWIG_rt_try(); -SWIGIMPORT int SWIG_rt_catch(); -SWIGIMPORT void SWIG_rt_throw(int val); +SWIGIMPORT int SWIG_rt_catch(const char *type); +SWIGIMPORT void SWIG_rt_throw(SwigObj *klass, const char * msg); SWIGIMPORT int SWIG_rt_endtry(); +SWIGIMPORT int SWIG_exit(int code); #define SWIG_try \ SWIG_rt_try(); \ - if ((SWIG_exception_code = setjmp(SWIG_rt_env)) == 0) -#define SWIG_catch(val) else if (SWIG_rt_catch(val)) -#define SWIG_throw(val) SWIG_rt_throw(val); + if ((SWIG_exception.code = setjmp(SWIG_rt_env)) == 0) +#define SWIG_catch(type) else if (SWIG_rt_catch(#type)) +#define SWIG_throw(klass) SWIG_rt_throw((SwigObj *) klass, 0); +#define SWIG_throw_msg(klass, msg) SWIG_rt_throw((SwigObj *) klass, msg); #define SWIG_endtry else SWIG_rt_endtry(); %} Modified: branches/gsoc2008-maciekd/Lib/exception.i =================================================================== --- branches/gsoc2008-maciekd/Lib/exception.i 2008-07-16 22:23:45 UTC (rev 10670) +++ branches/gsoc2008-maciekd/Lib/exception.i 2008-07-17 00:52:11 UTC (rev 10671) @@ -212,6 +212,21 @@ #endif // SWIGLUA +#ifdef SWIGC + +%inline %{ +struct SWIG_CException { + SWIG_CException(int code) { + SWIG_exception.code = code; + } +}; +%} + +#define SWIG_exception(code, msg)\ + SWIG_CThrowException(_wrap_new_SWIG_CException(code), msg); + +#endif // SWIGC + #ifdef __cplusplus /* You can use the SWIG_CATCH_STDEXCEPT macro with the %exception Modified: branches/gsoc2008-maciekd/Source/Modules/c.cxx =================================================================== --- branches/gsoc2008-maciekd/Source/Modules/c.cxx 2008-07-16 22:23:45 UTC (rev 10670) +++ branches/gsoc2008-maciekd/Source/Modules/c.cxx 2008-07-17 00:52:11 UTC (rev 10671) @@ -61,6 +61,7 @@ SWIG_typemap_lang("c"); SWIG_config_file("c.swg"); + // FIXME Swig_typemap_class_distinguish(false); // look for certain command line options @@ -185,8 +186,6 @@ virtual int globalvariableHandler(Node *n) { SwigType *type = Getattr(n, "type"); String *type_str = SwigType_str(type, 0); - //if (!CPlusPlus) - // Printv(f_wrappers, "SWIGEXPORTC ", type_str, " ", Getattr(n, "name"), ";\n", NIL); if (proxy_flag) { Printv(f_proxy_header, "SWIGIMPORT ", type_str, " ", Getattr(n, "name"), ";\n", NIL); } @@ -256,12 +255,12 @@ } /* ---------------------------------------------------------------------- - * getTypeSymbol() + * getMangledType() * * incomplete for now... * ---------------------------------------------------------------------- */ - const char *getTypeSymbol(String *type) { + const char *getMangledType(String *type) { char *c = Char(type); if (strcmp(c, "int") == 0) return "i"; @@ -332,7 +331,7 @@ if (parms) Append(over_suffix, "_"); for (p = parms; p; p = nextSibling(p)) { - Append(over_suffix, getTypeSymbol(Getattr(p, "type"))); + Append(over_suffix, getMangledType(Getattr(p, "type"))); } Append(name, over_suffix); } @@ -618,7 +617,8 @@ // emit "class"-struct definition Printv(sobj, "struct SwigObj", name, " {\n void* obj;\n", NIL); if (runtime_flag) - Printf(sobj, " const char* typenames[%d];\n}", Len(baselist) + 2); + //Printf(sobj, " const char *typenames[%d];\n}", Len(baselist) + 2); + Printf(sobj, " const char **typenames;\n}"); else Printf(sobj, "}"); @@ -627,7 +627,7 @@ // declare it in the proxy header if (proxy_flag) - Printv(f_proxy_header, "typedef ", sobj, " ", name, ";\n\n", NIL); + Printv(f_proxy_header, "#define ", name, " SwigObj\n\n", NIL); Delete(sobj); Delete(name); @@ -908,6 +908,7 @@ void emit_runtime_make_object(Node *n, String *classname, String *code) { // store the name of each class in the hierarchy List *baselist = Getattr(parentNode(n), "bases"); + Printf(code, "result->typenames = (const char **) malloc(%d*sizeof(const char*));\n", Len(baselist) + 2); Printv(code, "result->typenames[0] = Swig_typename_", classname, ";\n", NIL); int i = 1; if (baselist) { @@ -1059,8 +1060,9 @@ if (typecheck_flag) emit_runtime_typecheck(newclassname, destr_name, code); - Printv(code, "if (arg1)\n if (arg1->obj) {\n", NIL); - Printv(code, " delete (", classname, "*) (arg1->obj);\nfree(arg1);\n", NIL); + Printv(code, "if (arg1) if (arg1->obj) {\n", NIL); + Printv(code, " delete (", classname, "*) (arg1->obj);\n", NIL); + Printv(code, " free(arg1->typenames);\n free(arg1);\n", NIL); Printv(code, " arg1 = (", sobj_name, "*)0;\n}\n", NIL); Setattr(n, "wrap:action", code); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ma...@us...> - 2008-07-17 09:53:23
|
Revision: 10674 http://swig.svn.sourceforge.net/swig/?rev=10674&view=rev Author: maciekd Date: 2008-07-17 09:53:05 +0000 (Thu, 17 Jul 2008) Log Message: ----------- Replaced SwigObjXXX with one type SwigObj. Added typemaps for bool. Modified Paths: -------------- branches/gsoc2008-maciekd/Examples/c/simple/runme.c branches/gsoc2008-maciekd/Examples/test-suite/exception_order.i branches/gsoc2008-maciekd/Lib/c/c.swg branches/gsoc2008-maciekd/Source/Modules/c.cxx Modified: branches/gsoc2008-maciekd/Examples/c/simple/runme.c =================================================================== --- branches/gsoc2008-maciekd/Examples/c/simple/runme.c 2008-07-17 04:07:43 UTC (rev 10673) +++ branches/gsoc2008-maciekd/Examples/c/simple/runme.c 2008-07-17 09:53:05 UTC (rev 10674) @@ -3,9 +3,13 @@ #include "example_proxy.h" int main(int argc, char **argv) { - int a = 35; - int b = 15; - printf("Foo is %f\n", Foo); + int a = 42; + int b = 105; + int g = gcd(a, b); + printf("The gcd of %d and %d is %d\n", a, b, g); + printf("Foo = %f\n", Foo); + Foo = 3.1415926; + printf("Foo = %f\n", Foo); SWIG_exit(0); } Modified: branches/gsoc2008-maciekd/Examples/test-suite/exception_order.i =================================================================== --- branches/gsoc2008-maciekd/Examples/test-suite/exception_order.i 2008-07-17 04:07:43 UTC (rev 10673) +++ branches/gsoc2008-maciekd/Examples/test-suite/exception_order.i 2008-07-17 09:53:05 UTC (rev 10674) @@ -38,7 +38,7 @@ */ #if defined(SWIGC) %typemap(throws) SWIGTYPE { - SwigObj$1_basetype *_c_ex = _wrap_new_$1_basetype(); + SwigObj *_c_ex = _wrap_new_$1_basetype(); SWIG_CThrowException(_c_ex, "C++ $1_type exception thrown"); } Modified: branches/gsoc2008-maciekd/Lib/c/c.swg =================================================================== --- branches/gsoc2008-maciekd/Lib/c/c.swg 2008-07-17 04:07:43 UTC (rev 10673) +++ branches/gsoc2008-maciekd/Lib/c/c.swg 2008-07-17 09:53:05 UTC (rev 10674) @@ -22,23 +22,28 @@ // typemaps for function parameters -%typemap(ctype) void, short, int, long, char, float, double, bool "$1_type" +%typemap(ctype) void, short, int, long, char, float, double "$1_type" %typemap(ctype) unsigned short, unsigned int, unsigned long, unsigned char "$1_type" -%typemap(ctype) void *, short *, int *, long *, char *, float *, double *, bool * "$1_type" -%typemap(ctype) void **, short **, int **, long **, char **, float **, double **, bool ** "$1_type" +%typemap(ctype) void *, short *, int *, long *, char *, float *, double * "$1_type" +%typemap(ctype) void **, short **, int **, long **, char **, float **, double ** "$1_type" %typemap(ctype) unsigned short *, unsigned int *, unsigned long *, unsigned char * "$1_type" %typemap(ctype) unsigned short **, unsigned int **, unsigned long **, unsigned char ** "$1_type" -%typemap(ctype) short &, int &, long &, char &, float &, double &, bool & "$1_basetype *" +%typemap(ctype) short &, int &, long &, char &, float &, double & "$1_basetype *" %typemap(ctype) unsigned short &, unsigned int &, unsigned long &, unsigned char & "$1_basetype *" -%typemap(ctype) const short, const int, const long, const char, const float, const double, const bool "$1_type" +%typemap(ctype) const short &, const int &, const long &, const char &, const float &, const double & "$1_basetype *" +%typemap(ctype) const short, const int, const long, const char, const float, const double "$1_type" %typemap(ctype) const unsigned short, const unsigned int, const unsigned long, const unsigned char "$1_type" %typemap(ctype) const void *, const short *, const int *, const long *, const char *, const float *, const double *, const bool * "$1_type" -%typemap(ctype) void * [ANY], short * [ANY], int * [ANY], long * [ANY], char * [ANY], float * [ANY], double * [ANY], bool * [ANY] "$1 = ($1_basetype*) $input;" -%typemap(ctype) SWIGTYPE "struct SwigObj$1_type *" -%typemap(ctype) SWIGTYPE * "struct SwigObj$1_type" -%typemap(ctype) SWIGTYPE & "struct SwigObj$1_basetype*" -%typemap(ctype) SWIGTYPE * [ANY] "struct SwigObj$1_basetype*" +%typemap(ctype) void * [ANY], short * [ANY], int * [ANY], long * [ANY], char * [ANY], float * [ANY], double * [ANY], bool * [ANY] "$1_basetype **" +%typemap(ctype) SWIGTYPE "SwigObj *" +%typemap(ctype) SWIGTYPE * "SwigObj *" +%typemap(ctype) SWIGTYPE & "SwigObj *" +%typemap(ctype) SWIGTYPE * [ANY] "SwigObj *" +%fragment("stdbool_inc", "proxy_header") {#include <stdbool.h>} +%typemap(ctype, fragment="stdbool_inc") bool, bool *, bool **, const bool, const bool *, bool * [ANY] "$1_type" +%typemap(ctype, fragment="stdbool_inc") bool &, const bool & "$1_basetype *" + %typemap(in) short, int, long, char, float, double, bool "$1 = ($1_type) $input;" %typemap(in) void *, short *, int *, long *, char *, float *, double *, bool * "$1 = ($1_type) $input;" %typemap(in) void **, short **, int **, long **, char **, float **, double **, bool * "$1 = ($1_type) $input;" @@ -52,6 +57,8 @@ %typemap(in) unsigned short &, unsigned int &, unsigned long &, unsigned char & "$1 = ($1_basetype *) $input;" %typemap(in) const unsigned short &, const unsigned int &, const unsigned long &, const unsigned char & "$1 = ($1_basetype const *) $input;" +%typemap(in, fragment="stdbool_inc") bool, bool *, bool **, const bool, const bool *, bool * [ANY] "$1 = ($1_type) $input;" +%typemap(in, fragment="stdbool_inc") bool &, const bool & "$1 = ($1_basetype *) $input;" %typemap(in) SWIGTYPE { $1 = * ($1_type *) ($input->obj); @@ -85,18 +92,21 @@ // typemaps for return values -%typemap(couttype) void, short, int, long, char, float, double, bool "$1_type" -%typemap(couttype) void *, short *, int *, long *, char *, float *, double*, bool* "$1_type" -%typemap(couttype) const short, const int, const long, const char, const float, const double, const bool "$1_basetype" -%typemap(couttype) const void *, const short *, const int *, const long *, const char *, const float *, const double *, const bool * "$1_type" +%typemap(couttype) void, short, int, long, char, float, double "$1_type" +%typemap(couttype) void *, short *, int *, long *, char *, float *, double* "$1_type" +%typemap(couttype) const short, const int, const long, const char, const float, const double "$1_basetype" +%typemap(couttype) const void *, const short *, const int *, const long *, const char *, const float *, const double * "$1_type" %typemap(couttype) short &, int &, long &, char &, float &, double &, bool & "$1_basetype *" -%typemap(couttype) const short &, const int &, const long &, const char &, const float &, const double &, const bool & "$1_basetype const *" -%typemap(couttype) SWIGTYPE "struct SwigObj$1_type *" -%typemap(couttype) SWIGTYPE * "struct SwigObj$1_type" -%typemap(couttype) SWIGTYPE & "struct SwigObj$1_basetype *" +%typemap(couttype) const short &, const int &, const long &, const char &, const float &, const double & "$1_basetype const *" +%typemap(couttype) SWIGTYPE "SwigObj *" +%typemap(couttype) SWIGTYPE * "SwigObj *" +%typemap(couttype) SWIGTYPE & "SwigObj *" -%typemap(out) short, int, long, char, float, double, bool "$result = $1;" -%typemap(out) void*, short*, int*, long*, char*, float*, double*, bool* "$result = $1;" +%typemap(couttype, fragment="stdbool_inc") bool, bool *, const bool, const bool * "$1_type" +%typemap(couttype, fragment="stdbool_inc") bool &, const bool & "$1_basetype *" + +%typemap(out) short, int, long, char, float, double "$result = $1;" +%typemap(out) void*, short*, int*, long*, char*, float*, double* "$result = $1;" %typemap(out) const short, const int, const long, const char, const float, const double "$result = $1;" %typemap(out) const void *, const short *, const int *, const long *, const char *, const float *, const double * "$result = $1;" %typemap(out) unsigned short, unsigned int, unsigned long, unsigned char "$result = $1;" @@ -107,10 +117,13 @@ %typemap(out) const unsigned short &, const unsigned int &, const unsigned long &, const unsigned char & "$result = $1;" %typemap(out) void "" +%typemap(out, fragment="stdbool_inc") bool, bool *, const bool, const bool * "$result = $1;" +%typemap(out, fragment="stdbool_inc") bool &, const bool & "$result = $1;" + // allocate new "object-struct" by default %typemap(out) SWIGTYPE { - $result = (struct SwigObj$1_type *) malloc(sizeof(struct SwigObj$1_type)); + $result = (SwigObj *) malloc(sizeof(SwigObj)); $result->obj = (void*) &$1; #if SWIG_C_RUNTIME $result->typenames[0] = 0; // FIXME @@ -118,7 +131,7 @@ } %typemap(out) SWIGTYPE * { - $result = (struct SwigObj$1_type) malloc(sizeof(struct SwigObj$*1_type)); + $result = (SwigObj *) malloc(sizeof(SwigObj)); $result->obj = (void*) $1; #if SWIG_C_RUNTIME $result->typenames[0] = 0; // FIXME @@ -126,7 +139,7 @@ } %typemap(out) SWIGTYPE & { - $result = (struct SwigObj$1_basetype *) malloc(sizeof(struct SwigObj$1_basetype)); + $result = (SwigObj *) malloc(sizeof(SwigObj)); $result->obj = (void*) $1; #if SWIG_C_RUNTIME $result->typenames[0] = 0; // FIXME @@ -271,7 +284,6 @@ // special value indicating any type of exception like 'catch(...)' #define SWIG_AnyException "SWIG_AnyException" -#include <stdbool.h> #include <setjmp.h> SWIGIMPORT jmp_buf SWIG_rt_env; Modified: branches/gsoc2008-maciekd/Source/Modules/c.cxx =================================================================== --- branches/gsoc2008-maciekd/Source/Modules/c.cxx 2008-07-17 04:07:43 UTC (rev 10673) +++ branches/gsoc2008-maciekd/Source/Modules/c.cxx 2008-07-17 09:53:05 UTC (rev 10674) @@ -627,7 +627,8 @@ // declare it in the proxy header if (proxy_flag) - Printv(f_proxy_header, "#define ", name, " SwigObj\n\n", NIL); + //Printv(f_proxy_header, "#define ", name, " SwigObj\n\n", NIL); + Printv(f_proxy_header, "typedef SwigObj ", name, ";\n\n", NIL); Delete(sobj); Delete(name); @@ -708,7 +709,7 @@ ParmList *parms = Getattr(n, "parms"); // create first argument - Printv(sobj_name, "struct SwigObj", newclassname, NIL); + Printf(sobj_name, "SwigObj"); ctype = Copy(sobj_name); SwigType_add_pointer(ctype); Parm *p = NewParm(ctype, "self"); @@ -867,7 +868,7 @@ String *new_name = NewString(""); // create first argument - Printv(sobj_name, "struct SwigObj", newclassname, NIL); + Printf(sobj_name, "SwigObj"); ctype = Copy(sobj_name); SwigType_add_pointer(ctype); Parm *p = NewParm(ctype, "self"); @@ -943,7 +944,7 @@ Append(arg_lnames, Swig_cfunction_call(empty_string, parms)); // set the function return type to the pointer to struct - Printv(sobj_name, "struct SwigObj", newclassname, NIL); + Printf(sobj_name, "SwigObj"); ctype = Copy(sobj_name); SwigType_add_pointer(ctype); Setattr(n, "type", ctype); @@ -993,7 +994,7 @@ Setattr(parms, "lname", "arg1"); // set the function return type to the pointer to struct - Printv(sobj_name, "struct SwigObj", newclassname, NIL); + Printf(sobj_name, "SwigObj"); ctype = Copy(sobj_name); SwigType_add_pointer(ctype); Setattr(n, "type", ctype); @@ -1040,7 +1041,7 @@ Parm *p; // create first argument - Printv(sobj_name, "struct SwigObj", newclassname, " ", NIL); + Printf(sobj_name, "SwigObj"); ctype = Copy(sobj_name); SwigType_add_pointer(ctype); p = NewParm(ctype, "self"); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ma...@us...> - 2008-07-21 10:55:21
|
Revision: 10691 http://swig.svn.sourceforge.net/swig/?rev=10691&view=rev Author: maciekd Date: 2008-07-21 10:55:05 +0000 (Mon, 21 Jul 2008) Log Message: ----------- Support for enums and typedefs. Modified Paths: -------------- branches/gsoc2008-maciekd/Examples/test-suite/c/Makefile.in branches/gsoc2008-maciekd/Lib/c/c.swg branches/gsoc2008-maciekd/Source/Modules/c.cxx branches/gsoc2008-maciekd/configure.in Modified: branches/gsoc2008-maciekd/Examples/test-suite/c/Makefile.in =================================================================== --- branches/gsoc2008-maciekd/Examples/test-suite/c/Makefile.in 2008-07-21 04:51:46 UTC (rev 10690) +++ branches/gsoc2008-maciekd/Examples/test-suite/c/Makefile.in 2008-07-21 10:55:05 UTC (rev 10691) @@ -13,7 +13,10 @@ C_TEST_CASES = CPP_TEST_CASES = \ - c_arguments + exception_order \ + exception_partial_info \ + enums \ + enum_plus \ include $(srcdir)/../common.mk Modified: branches/gsoc2008-maciekd/Lib/c/c.swg =================================================================== --- branches/gsoc2008-maciekd/Lib/c/c.swg 2008-07-21 04:51:46 UTC (rev 10690) +++ branches/gsoc2008-maciekd/Lib/c/c.swg 2008-07-21 10:55:05 UTC (rev 10691) @@ -39,6 +39,7 @@ %typemap(ctype) SWIGTYPE * "SwigObj *" %typemap(ctype) SWIGTYPE & "SwigObj *" %typemap(ctype) SWIGTYPE * [ANY] "SwigObj *" +%typemap(ctype) enum SWIGTYPE "$1_type" %fragment("stdbool_inc", "proxy_header") {#include <stdbool.h>} %typemap(ctype, fragment="stdbool_inc") bool, bool *, bool **, const bool, const bool *, bool * [ANY] "$1_type" @@ -60,6 +61,8 @@ %typemap(in, fragment="stdbool_inc") bool, bool *, bool **, const bool, const bool *, bool * [ANY] "$1 = ($1_type) $input;" %typemap(in, fragment="stdbool_inc") bool &, const bool & "$1 = ($1_basetype *) $input;" +%typemap(in) enum SWIGTYPE "$1 = ($1_type) $input;" + %typemap(in) SWIGTYPE { $1 = * ($1_type *) ($input->obj); } @@ -98,9 +101,10 @@ %typemap(couttype) const void *, const short *, const int *, const long *, const char *, const float *, const double * "$1_type" %typemap(couttype) short &, int &, long &, char &, float &, double &, bool & "$1_basetype *" %typemap(couttype) const short &, const int &, const long &, const char &, const float &, const double & "$1_basetype const *" -%typemap(couttype) SWIGTYPE "SwigObj *" -%typemap(couttype) SWIGTYPE * "SwigObj *" -%typemap(couttype) SWIGTYPE & "SwigObj *" +%typemap(couttype) SWIGTYPE "SwigObj *" +%typemap(couttype) SWIGTYPE * "SwigObj *" +%typemap(couttype) SWIGTYPE & "SwigObj *" +%typemap(couttype) enum SWIGTYPE "$1_type" %typemap(couttype, fragment="stdbool_inc") bool, bool *, const bool, const bool * "$1_type" %typemap(couttype, fragment="stdbool_inc") bool &, const bool & "$1_basetype *" @@ -120,6 +124,8 @@ %typemap(out, fragment="stdbool_inc") bool, bool *, const bool, const bool * "$result = $1;" %typemap(out, fragment="stdbool_inc") bool &, const bool & "$result = $1;" +%typemap(out) enum SWIGTYPE "$result = ($1_type) $1;" + // allocate new "object-struct" by default %typemap(out) SWIGTYPE { Modified: branches/gsoc2008-maciekd/Source/Modules/c.cxx =================================================================== --- branches/gsoc2008-maciekd/Source/Modules/c.cxx 2008-07-21 04:51:46 UTC (rev 10690) +++ branches/gsoc2008-maciekd/Source/Modules/c.cxx 2008-07-21 10:55:05 UTC (rev 10691) @@ -9,6 +9,7 @@ char cvsroot_c_cxx[] = "$Id$"; +#include <ctype.h> #include "swigmod.h" class C:public Language { @@ -26,6 +27,8 @@ String *f_proxy_header; String *empty_string; + String *int_string; + String *enum_values; bool proxy_flag; bool runtime_flag; @@ -39,6 +42,8 @@ C() : empty_string(NewString("")), + int_string(NewString("int")), + enum_values(0), proxy_flag(true), runtime_flag(true), typecheck_flag(false) { @@ -187,7 +192,7 @@ SwigType *type = Getattr(n, "type"); String *type_str = SwigType_str(type, 0); if (proxy_flag) { - Printv(f_proxy_header, "SWIGIMPORT ", type_str, " ", Getattr(n, "name"), ";\n", NIL); + Printv(f_proxy_header, "SWIGIMPORT ", type_str, " ", Getattr(n, "name"), ";\n\n", NIL); } return SWIG_OK; } @@ -271,6 +276,35 @@ } /* ---------------------------------------------------------------------- + * make_enum_type() + * + * given C++ enum type this function returns its C representation + * ---------------------------------------------------------------------- */ + + String *make_enum_type(Node *n, SwigType *enumtype) { + Symtab *symtab = Getattr(n, "sym:symtab"); + String *unnamed = Getattr(n, "unnamed"); + String *newtype = 0; + String *query = 0; + + if (!unnamed) + query = Swig_scopename_last(SwigType_str(enumtype, 0)); + else { + Replaceall(unnamed, "$unnamed", "enum"); + Replaceall(unnamed, "$", ""); + query = unnamed; + } + + Node *node = Swig_symbol_clookup(query, symtab); + if (node) + newtype = NewStringf("enum %s", Getattr(node, "name")); + else + newtype = Copy(enumtype); + + return newtype; + } + + /* ---------------------------------------------------------------------- * functionWrapper() * ---------------------------------------------------------------------- */ @@ -286,7 +320,7 @@ String *proto = NewString(""); String *over_suffix = NewString(""); int gencomma; - bool is_void_return = (SwigType_type(Getattr(n, "type")) == T_VOID); + bool is_void_return = (SwigType_type(type) == T_VOID); // create new function wrapper object Wrapper *wrapper = NewWrapper(); @@ -304,7 +338,7 @@ Delitem(arg_names, 0); Delitem(arg_names, DOH_END); } - return_type = SwigType_str(Getattr(n, "type"), 0); + return_type = SwigType_str(type, 0); // emit wrapper prototype and code gencomma = 0; @@ -341,16 +375,16 @@ wname = Swig_name_wrapper(name); Setattr(n, "wrap:name", wname); - // attach the standard typemaps - emit_attach_parmmaps(parms, wrapper); - Setattr(n, "wrap:parms", parms); - // set the return type if (Cmp(Getattr(n, "c:objstruct"), "1") == 0) { Printv(return_type, SwigType_str(type, 0), NIL); } + else if (SwigType_isenum(type)) { + type = return_type = make_enum_type(n, type); + Setattr(n, "type", return_type); + } else if ((tm = Swig_typemap_lookup("couttype", n, "", 0))) { - String *ctypeout = Getattr(n, "tmap:ctype:out"); // the type in the ctype typemap's out attribute overrides the type in the typemap + String *ctypeout = Getattr(n, "tmap:couttype:out"); if (ctypeout) tm = ctypeout; Printf(return_type, "%s", tm); @@ -359,23 +393,27 @@ Swig_warning(WARN_C_TYPEMAP_CTYPE_UNDEF, input_file, line_number, "No couttype typemap defined for %s\n", SwigType_str(type, 0)); } - // attach 'ctype' typemaps - Swig_typemap_attach_parms("ctype", parms, wrapper); - - // emit variables for holding parameters - emit_parameter_variables(parms, wrapper); - // add variable for holding result of original function if (!is_void_return && (Cmp(Getattr(n, "c:objstruct"), "1") != 0)) { if (SwigType_isconst(type)) SwigType_del_qualifier(type); SwigType *return_var_type = SwigType_isreference(type) ? SwigType_add_pointer(SwigType_base(type)) : type; - Wrapper_add_localv(wrapper, "cppresult", SwigType_str(return_var_type, 0), "cppresult", NIL); + if (SwigType_isenum(type)) + Wrapper_add_localv(wrapper, "cppresult", "int", "cppresult", NIL); + else + Wrapper_add_localv(wrapper, "cppresult", SwigType_str(return_var_type, 0), "cppresult", NIL); } // create wrapper function prototype Printv(wrapper->def, "SWIGEXPORTC ", return_type, " ", wname, "(", NIL); + // attach the standard typemaps + emit_attach_parmmaps(parms, wrapper); + Setattr(n, "wrap:parms", parms); + + // attach 'ctype' typemaps + Swig_typemap_attach_parms("ctype", parms, wrapper); + // prepare function definition gencomma = 0; for (p = parms; p; ) { @@ -392,10 +430,21 @@ Printf(arg_name, "c%s", lname); + bool dont_apply_tmap = false; + // set the appropriate type for parameter if (Cmp(Getattr(p, "c:objstruct"), "1") == 0) { Printv(c_parm_type, SwigType_str(type, 0), NIL); + dont_apply_tmap = true; } + else if (SwigType_isenum(type)) { + c_parm_type = make_enum_type(n, type); + if (Getattr(n, "unnamed")) { + type = int_string; + Setattr(p, "type", type); + dont_apply_tmap = true; + } + } else if ((tm = Getattr(p, "tmap:ctype"))) { Printv(c_parm_type, tm, NIL); } @@ -412,8 +461,6 @@ Printv(proxy_parm_type, c_parm_type, NIL); } - Replaceall(c_parm_type, "::", "_"); - Printv(arg_names, gencomma ? ", " : "", Getattr(p, "name"), NIL); Printv(wrapper->def, gencomma ? ", " : "", c_parm_type, " ", arg_name, NIL); Printv(proto, gencomma ? ", " : "", proxy_parm_type, " ", Getattr(p, "name"), NIL); @@ -421,8 +468,7 @@ // apply typemaps for input parameter if ((tm = Getattr(p, "tmap:in"))) { - if (Cmp(Getattr(p, "c:objstruct"), "1") == 0) { - // FIXME: should work as typemaps for basic types + if (dont_apply_tmap) { Printv(wrapper->code, lname, " = ", arg_name, ";\n", NIL); } else { @@ -443,6 +489,9 @@ Printf(wrapper->def, ") {"); + // emit variables for holding parameters + emit_parameter_variables(parms, wrapper); + // emit variable for holding function return value emit_return_variable(n, return_type, wrapper); @@ -462,6 +511,8 @@ Replaceall(action, "$mod", ref_cast); Delete(ref_cast); } + else if (SwigType_isenum(type)) + Replaceall(action, "$mod", "(int)"); else Replaceall(action, "$mod", ""); @@ -525,13 +576,13 @@ void emit_runtime_typecheck(String *classname, String *funcname, String *code) { Printf(code, "{\nint i = 0, type_ok = 0;\n"); Printf(code, "if (arg1 == NULL) {\n"); - Printv(code, " fprintf(stderr, \"error: NULL object-struct passed to ", funcname, "\\n\");\n"); + Printv(code, " fprintf(stdout, \"error: NULL object-struct passed to ", funcname, "\\n\");\n"); Printf(code, " longjmp(Swig_rt_env, 0);\n}\n"); Printf(code, "while(arg1->typenames[i]) {\n"); Printv(code, " if (strcmp(arg1->typenames[i++], \"", classname, "\") == 0) {\n", NIL); Printf(code, " type_ok = 1;\nbreak;\n}\n}\n"); Printf(code, "if (!type_ok) {\n"); - Printv(code, " fprintf(stderr, \"error: object-struct passed to ", funcname, " is not of class ", classname, "\\n\");\n", NIL); + Printv(code, " fprintf(stdout, \"error: object-struct passed to ", funcname, " is not of class ", classname, "\\n\");\n", NIL); Printf(code, " longjmp(Swig_rt_env, 0);\n}\n}\n"); } @@ -614,20 +665,10 @@ } } - // emit "class"-struct definition - Printv(sobj, "struct SwigObj", name, " {\n void* obj;\n", NIL); - if (runtime_flag) - //Printf(sobj, " const char *typenames[%d];\n}", Len(baselist) + 2); - Printf(sobj, " const char **typenames;\n}"); - else - Printf(sobj, "}"); - - Printv(f_header, sobj, ";\n\n", NIL); Printv(f_header, "const char* Swig_typename_", name, " = \"", name, "\";\n\n", NIL); - // declare it in the proxy header + // declare type for specific class in the proxy header if (proxy_flag) - //Printv(f_proxy_header, "#define ", name, " SwigObj\n\n", NIL); Printv(f_proxy_header, "typedef SwigObj ", name, ";\n\n", NIL); Delete(sobj); @@ -809,7 +850,6 @@ } Append(action, code); Setattr(n, "wrap:action", action); - Setattr(n, "type", "void"); functionWrapper(n); @@ -842,6 +882,8 @@ if (!SwigType_isconst(type)) { // create code for 'set' function code = NewString(""); + if (SwigType_isenum(Getattr(n, "type")) && Getattr(n, "unnamed")) + Printf(code, "* (int *) &"); Printv(code, classname, "::", name, " = arg1;\n", NIL); wrap_set_variable(n, classname, newclassname, name, code); } @@ -890,8 +932,13 @@ // create 'set' function set_nextSibling(p, t); Setattr(n, "parms", p); + String *code = 0; + if (SwigType_isenum(Getattr(n, "type")) && Getattr(n, "unnamed")) { + code = NewString(""); + Printv(code, "* (int *) &((", classname, "*) arg1->obj)->", name, " = arg2;\n", NIL); + } Setattr(n, "type", "void"); - wrap_set_variable(n, classname, newclassname, name, 0); + wrap_set_variable(n, classname, newclassname, name, code); } Delete(new_name); @@ -1080,9 +1127,59 @@ /* --------------------------------------------------------------------- * enumDeclaration() + * + * for enums declared inside class we create global enum declaration + * and change enum parameter and return value names * --------------------------------------------------------------------- */ virtual int enumDeclaration(Node *n) { + String *newclassname = Getattr(parentNode(n), "sym:name"); + String *name = Getattr(n, "sym:name"); + String *code = NewString(""); + String *tdname = Getattr(n, "tdname"); + String *newname = newclassname ? NewStringf("%s_", newclassname) : Copy(name); + Symtab *symtab = Getattr(n, "sym:symtab"); + + if (tdname) + Printf(code, "typedef "); + + Printf(code, "enum "); + + if (Delattr(n, "unnamed")) { + // unnamed enum declaration: create new symbol + Replaceall(name, "$unnamed", "enum"); + Delitem(name, DOH_END); + + Node *entry = NewHash(); + set_nodeType(entry, "enum"); + Setattr(entry, "name", name); + Setattr(entry, "sym:name", name); + Setattr(entry, "sym:symtab", symtab); + Swig_symbol_add(name, entry); + } + + if (newclassname) { + if (symtab) { + Node *node = Swig_symbol_clookup(name, symtab); + if (node) { + Append(newname, name); + Setattr(node, "name", newname); + } + } + } + Printv(code, newname ? newname : "", " {\n$enumvalues\n} ", tdname ? tdname : "", ";\n\n", NIL); + emit_children(n); + if (enum_values) { + Replaceall(code, "$enumvalues", enum_values); + Append(f_proxy_header, code); + if (newclassname) + Append(f_header, code); + Delete(enum_values); + enum_values = 0; + } + + Delete(newname); + Delete(code); return SWIG_OK; } @@ -1091,9 +1188,51 @@ * --------------------------------------------------------------------- */ virtual int enumvalueDeclaration(Node *n) { + String *name = Getattr(n, "sym:name"); + String *enumvalue = Getattr(n, "enumvalue"); + String *init = 0; + if (enumvalue) { + char *value_repr = Char(enumvalue); + if (value_repr) + if (!isdigit(*value_repr) && *value_repr != '+') { + init = NewStringf(" = '%c'", *value_repr); + } + else + init = NewStringf(" = %s", enumvalue); + } + + String *newclassname = Getattr(parentNode(parentNode(n)), "sym:name"); + String *newname = NewStringf("%s_%s", newclassname, name); + int gencomma = 1; + if (!enum_values) { + enum_values = NewString(""); + gencomma = 0; + } + Printv(enum_values, gencomma ? ",\n " : " ", newclassname ? newname : name, enumvalue ? init : "", NIL); + Delete(newname); + if (init) + Delete(init); return SWIG_OK; } + /* --------------------------------------------------------------------- + * typedefHandler() + * --------------------------------------------------------------------- */ + + virtual int typedefHandler(Node *n) { + String *name = Getattr(n, "sym:name"); + String *type = Getattr(n, "type"); + char *c = Char(SwigType_str(type, 0)); + if (strncmp(c, "enum", 4) != 0) { + if (name && type) { + String *code = NewStringf("typedef %s %s;\n\n", type, name); + Append(f_proxy_header, code); + Delete(code); + } + } + return SWIG_OK; + } + }; /* class C */ /* ----------------------------------------------------------------------------- Modified: branches/gsoc2008-maciekd/configure.in =================================================================== --- branches/gsoc2008-maciekd/configure.in 2008-07-21 04:51:46 UTC (rev 10690) +++ branches/gsoc2008-maciekd/configure.in 2008-07-21 10:55:05 UTC (rev 10691) @@ -1959,10 +1959,10 @@ #fi AC_SUBST(SKIP_UFFI) -SKIP_C="" -#if test -x "$(CC)" || test -z "$(CXX)" ; then -# SKIP_C="1" -#fi +SKIP_C= +if test -x "$CC" || test -z "$CXX" ; then + SKIP_C="1" +fi AC_SUBST(SKIP_C) #---------------------------------------------------------------- This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ma...@us...> - 2008-07-21 15:52:34
|
Revision: 10694 http://swig.svn.sourceforge.net/swig/?rev=10694&view=rev Author: maciekd Date: 2008-07-21 15:52:30 +0000 (Mon, 21 Jul 2008) Log Message: ----------- Renaming and type mangling fixes. Reverted to normal typemaps searching. Modified Paths: -------------- branches/gsoc2008-maciekd/Lib/c/c.swg branches/gsoc2008-maciekd/Source/Modules/c.cxx branches/gsoc2008-maciekd/Source/Swig/swig.h branches/gsoc2008-maciekd/Source/Swig/typemap.c Modified: branches/gsoc2008-maciekd/Lib/c/c.swg =================================================================== --- branches/gsoc2008-maciekd/Lib/c/c.swg 2008-07-21 14:10:41 UTC (rev 10693) +++ branches/gsoc2008-maciekd/Lib/c/c.swg 2008-07-21 15:52:30 UTC (rev 10694) @@ -47,17 +47,19 @@ %typemap(in) short, int, long, char, float, double, bool "$1 = ($1_type) $input;" %typemap(in) void *, short *, int *, long *, char *, float *, double *, bool * "$1 = ($1_type) $input;" -%typemap(in) void **, short **, int **, long **, char **, float **, double **, bool * "$1 = ($1_type) $input;" +%typemap(in) void **, short **, int **, long **, char **, float **, double **, bool * "$1 = ($1_basetype **) $input;" %typemap(in) unsigned short *, unsigned int *, unsigned long *, unsigned char * "$1 = ($1_type) $input;" %typemap(in) unsigned short **, unsigned int **, unsigned long **, unsigned char ** "$1 = ($1_type) $input;" %typemap(in) const void *, const short *, const int *, const long *, const char *, const float *, const double *, const bool * "$1 = ($1_basetype *) $input;" %typemap(in) const unsigned short *, const unsigned int *, const unsigned long *, const unsigned char * "$1 = ($1_type) $input;" %typemap(in) unsigned short, unsigned int, unsigned long, unsigned char "$1 = ($1_type) $input;" %typemap(in) short &, int &, long &, char &, float &, double &, bool & "$1 = ($1_basetype *) $input;" -%typemap(in) const short &, const int &, const long &, const char &, const float &, const double &, const bool & "$1 = ($1_basetype const *) $input;" +%typemap(in) const short &, const int &, const long &, const char &, const float &, const double &, const bool & "$1 = ($1_basetype *) $input;" %typemap(in) unsigned short &, unsigned int &, unsigned long &, unsigned char & "$1 = ($1_basetype *) $input;" -%typemap(in) const unsigned short &, const unsigned int &, const unsigned long &, const unsigned char & "$1 = ($1_basetype const *) $input;" +%typemap(in) const unsigned short &, const unsigned int &, const unsigned long &, const unsigned char & "$1 = ($1_basetype *) $input;" +%typemap(in) void * [ANY], short * [ANY], int * [ANY], long * [ANY], char * [ANY], float * [ANY], double * [ANY], bool * [ANY] "$1 = ($1_basetype *) $input;" + %typemap(in, fragment="stdbool_inc") bool, bool *, bool **, const bool, const bool *, bool * [ANY] "$1 = ($1_type) $input;" %typemap(in, fragment="stdbool_inc") bool &, const bool & "$1 = ($1_basetype *) $input;" Modified: branches/gsoc2008-maciekd/Source/Modules/c.cxx =================================================================== --- branches/gsoc2008-maciekd/Source/Modules/c.cxx 2008-07-21 14:10:41 UTC (rev 10693) +++ branches/gsoc2008-maciekd/Source/Modules/c.cxx 2008-07-21 15:52:30 UTC (rev 10694) @@ -66,9 +66,6 @@ SWIG_typemap_lang("c"); SWIG_config_file("c.swg"); - // FIXME - Swig_typemap_class_distinguish(false); - // look for certain command line options for (int i = 1; i < argc; i++) { if (argv[i]) { @@ -261,18 +258,61 @@ /* ---------------------------------------------------------------------- * getMangledType() - * - * incomplete for now... * ---------------------------------------------------------------------- */ - const char *getMangledType(String *type) { - char *c = Char(type); - if (strcmp(c, "int") == 0) - return "i"; - if (strcmp(c, "double") == 0) - return "d"; + String *getMangledType(SwigType *type_arg) { + static String *result = 0; + SwigType *prefix = 0; + if (result) + Delete(result); + result = NewString(""); - return "UNKNOWN"; + /*Printf(stderr, "MANGLING TYPE: %s\n", type_arg);*/ + + SwigType *type = Copy(type_arg); + + if (SwigType_ismemberpointer(type)) { + SwigType_del_memberpointer(type); + SwigType_add_pointer(type); + } + + if (SwigType_ispointer(type)) { + SwigType_del_pointer(type); + if (SwigType_isfunction(type)) { + Printf(result, "f"); + goto ready; + } + Delete(type); + type = Copy(type_arg); + } + + prefix = SwigType_prefix(type); + Replaceall(prefix, ".", ""); + Replaceall(prefix, "const", "c"); + Replaceall(prefix, "volatile", "v"); + Replaceall(prefix, "a(", "a"); + Replaceall(prefix, "m(", "m"); + Replaceall(prefix, "q(", ""); + Replaceall(prefix, ")", ""); + Replaceall(prefix, " ", ""); + Printf(result, "%s", prefix); + + type = SwigType_base(type); + if (SwigType_isbuiltin(type)) + Printf(result, "%c", *Char(SwigType_base(type))); + else if (SwigType_isenum(type)) + Printf(result, "e%s", Swig_scopename_last(type)); + else + Printf(result, "%s", Char(SwigType_base(type))); + +ready: + /*Printf(stderr, " RESULT: %s\n", result);*/ + + if (prefix) + Delete(prefix); + if (type) + Delete(type); + return result; } /* ---------------------------------------------------------------------- @@ -362,10 +402,11 @@ // mangle name if function is overloaded if (Getattr(n, "sym:overloaded")) { if (!Getattr(n, "copy_constructor")) { - if (parms) - Append(over_suffix, "_"); for (p = parms; p; p = nextSibling(p)) { - Append(over_suffix, getMangledType(Getattr(p, "type"))); + if (Getattr(p, "c:objstruct")) + continue; + String *mangled = getMangledType(Getattr(p, "type")); + Printv(over_suffix, "_", mangled, NIL); } Append(name, over_suffix); } @@ -703,7 +744,7 @@ * --------------------------------------------------------------------- */ virtual int staticmemberfunctionHandler(Node *n) { - String *name = Getattr(n, "name"); + String *name = Copy(Getattr(n, "sym:name")); String *classname = Getattr(parentNode(n), "typename"); String *newclassname = Getattr(parentNode(n), "sym:name"); String *new_name = NewString(""); @@ -717,12 +758,12 @@ Delitem(arg_lnames, DOH_END); // modify method name - Printv(new_name, newclassname, "_", name, NIL); + new_name = Swig_name_member(newclassname, name); Setattr(n, "sym:name", new_name); // generate action code Printv(code, (Strcmp(Getattr(n, "type"), "void") != 0) ? "$cppresult = $mod " : "", NIL); - Printv(code, classname, "::", name, "(", arg_lnames, ");\n", NIL); + Printv(code, classname, "::", Getattr(n, "name"), "(", arg_lnames, ");\n", NIL); Setattr(n, "wrap:action", code); functionWrapper(n); @@ -730,6 +771,7 @@ Delete(arg_lnames); Delete(code); Delete(new_name); + Delete(name); return SWIG_OK; } @@ -738,7 +780,7 @@ * --------------------------------------------------------------------- */ virtual int memberfunctionHandler(Node *n) { - String *name = Getattr(n, "name"); + String *name = Copy(Getattr(n, "sym:name")); String *classname = Getattr(parentNode(n), "classtype"); String *newclassname = Getattr(parentNode(n), "sym:name"); String *sobj_name = NewString(""); @@ -776,14 +818,14 @@ Delitem(arg_lnames, DOH_END); // modify method name - Printv(new_name, newclassname, "_", name, NIL); + new_name = Swig_name_member(newclassname, name); Setattr(n, "sym:name", new_name); // generate action code if (typecheck_flag) emit_runtime_typecheck(newclassname, new_name, code); Printv(code, (Strcmp(Getattr(n, "type"), "void") != 0) ? "$cppresult = $mod " : "", NIL); - Printv(code, "((", classname, "*) arg1->obj)->", name, "(", arg_call_lnames, ");\n", NIL); + Printv(code, "((", classname, "*) arg1->obj)->", Getattr(n, "name"), "(", arg_call_lnames, ");\n", NIL); Setattr(n, "wrap:action", code); functionWrapper(n); @@ -794,6 +836,7 @@ Delete(stype); Delete(ctype); Delete(sobj_name); + Delete(name); return SWIG_OK; } Modified: branches/gsoc2008-maciekd/Source/Swig/swig.h =================================================================== --- branches/gsoc2008-maciekd/Source/Swig/swig.h 2008-07-21 14:10:41 UTC (rev 10693) +++ branches/gsoc2008-maciekd/Source/Swig/swig.h 2008-07-21 15:52:30 UTC (rev 10694) @@ -377,7 +377,6 @@ extern Hash *Swig_typemap_pop_scope(void); extern void Swig_typemap_attach_parms(const String_or_char *op, ParmList *parms, Wrapper *f); - extern void Swig_typemap_class_distinguish(int b); /* --- Code fragment support --- */ Modified: branches/gsoc2008-maciekd/Source/Swig/typemap.c =================================================================== --- branches/gsoc2008-maciekd/Source/Swig/typemap.c 2008-07-21 14:10:41 UTC (rev 10693) +++ branches/gsoc2008-maciekd/Source/Swig/typemap.c 2008-07-21 15:52:30 UTC (rev 10694) @@ -47,7 +47,6 @@ static Hash *typemaps[MAX_SCOPE]; static int tm_scope = 0; -static int class_distinguish = 0; static Hash *get_typemap(int tm_scope, SwigType *type) { Hash *tm = 0; @@ -61,6 +60,7 @@ } tm = Getattr(typemaps[tm_scope], type); + if (dtype) { if (!tm) { String *t_name = SwigType_templateprefix(type); @@ -583,10 +583,6 @@ return t; } -void Swig_typemap_class_distinguish(int b) { - class_distinguish = b; -} - /* ----------------------------------------------------------------------------- * Swig_typemap_search() * @@ -605,22 +601,7 @@ const String *cname = 0; SwigType *unstripped = 0; String *tmop = tmop_name(op); - SwigType *base = 0; - int isbuiltin = 0; - /* - * HACK: - * try to distinguish between built-in types (int, char, etc.) and defined classes - * this allows C module to use different typemaps for classes - */ - - if (class_distinguish) { - base = SwigType_base(type); - isbuiltin = SwigType_isbuiltin(base); - if (!isbuiltin) - Replaceall(type, base, "SWIGCLASSTYPE"); - } - if ((name) && Len(name)) cname = name; ts = tm_scope; @@ -705,16 +686,7 @@ /* Hmmm. Well, no match seems to be found at all. See if there is some kind of default mapping */ primitive = SwigType_default(type); - while (primitive) { - - if (class_distinguish) { - if (!isbuiltin) { - Replaceall(primitive, "SWIGTYPE", "SWIGCLASSTYPE"); - /*Printf(stdout, "Swig_typemap_search: new type is %s\n", primitive);*/ - } - } - tm = get_typemap(ts, primitive); if (tm && cname) { tm1 = Getattr(tm, cname); @@ -730,8 +702,6 @@ goto ret_result; } { - if (class_distinguish) - Replaceall(primitive, "SWIGCLASSTYPE", "SWIGTYPE"); SwigType *nprim = SwigType_default(primitive); Delete(primitive); primitive = nprim; @@ -746,10 +716,6 @@ result = backup; ret_result: - if (class_distinguish) { - Replaceall(type, "SWIGCLASSTYPE", base); - Replaceall(primitive, "SWIGCLASSTYPE", base); - } if (noarrays) Delete(noarrays); if (primitive) @@ -761,7 +727,6 @@ } if (type != ctype) Delete(ctype); - return result; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ma...@us...> - 2008-07-21 18:22:46
|
Revision: 10696 http://swig.svn.sourceforge.net/swig/?rev=10696&view=rev Author: maciekd Date: 2008-07-21 18:22:43 +0000 (Mon, 21 Jul 2008) Log Message: ----------- Now constructors use SWIG_create_object() function, which fills type information for SwigObj struct. 'out' typemaps for objects and 'throws' typemaps also use this. Modified Paths: -------------- branches/gsoc2008-maciekd/Examples/test-suite/exception_order.i branches/gsoc2008-maciekd/Lib/c/c.swg branches/gsoc2008-maciekd/Source/Modules/c.cxx Modified: branches/gsoc2008-maciekd/Examples/test-suite/exception_order.i =================================================================== --- branches/gsoc2008-maciekd/Examples/test-suite/exception_order.i 2008-07-21 18:20:51 UTC (rev 10695) +++ branches/gsoc2008-maciekd/Examples/test-suite/exception_order.i 2008-07-21 18:22:43 UTC (rev 10696) @@ -33,22 +33,9 @@ } #endif -/* - * Additional typemaps needed to handle exception order in C. - */ -#if defined(SWIGC) -%typemap(throws) SWIGTYPE { - SwigObj *_c_ex = _wrap_new_$1_basetype(); - SWIG_CThrowException(_c_ex, "C++ $1_type exception thrown"); -} - -%typemap(throws) ET<int>, ET<double> { - SWIG_CThrowException(NULL, "C++ $1_type exception thrown"); -} -#endif - %catches(E1,E2*,ET<int>,ET<double>,...) A::barfoo(int i); + %allowexception efoovar; %allowexception A::efoovar; Modified: branches/gsoc2008-maciekd/Lib/c/c.swg =================================================================== --- branches/gsoc2008-maciekd/Lib/c/c.swg 2008-07-21 18:20:51 UTC (rev 10695) +++ branches/gsoc2008-maciekd/Lib/c/c.swg 2008-07-21 18:22:43 UTC (rev 10696) @@ -18,6 +18,11 @@ void *obj; const char **typenames; } SwigObj; + +SWIGINTERN SwigObj *SWIG_registry_base = 0; +SWIGINTERN SwigObj *SWIG_registry = 0; + +#define SWIG_STR(x) #x %} // typemaps for function parameters @@ -131,27 +136,14 @@ // allocate new "object-struct" by default %typemap(out) SWIGTYPE { - $result = (SwigObj *) malloc(sizeof(SwigObj)); + $result = SWIG_create_object(SWIG_STR($1_type)); $result->obj = (void*) &$1; - #if SWIG_C_RUNTIME - $result->typenames[0] = 0; // FIXME - #endif } -%typemap(out) SWIGTYPE * { - $result = (SwigObj *) malloc(sizeof(SwigObj)); - $result->obj = (void*) $1; - #if SWIG_C_RUNTIME - $result->typenames[0] = 0; // FIXME - #endif -} -%typemap(out) SWIGTYPE & { - $result = (SwigObj *) malloc(sizeof(SwigObj)); +%typemap(out) SWIGTYPE *, SWIGTYPE & { + $result = SWIG_create_object(SWIG_STR($1_basetype)); $result->obj = (void*) $1; - #if SWIG_C_RUNTIME - $result->typenames[0] = 0; // FIXME - #endif } // exception handling @@ -166,13 +158,22 @@ SWIG_CThrowException(0, $1); } -// this should match only non-built-in and non-template objects +// this should match only non-built-in objects %typemap(throws) SWIGTYPE { - SWIG_CThrowException(0, "C++ $1_type exception thrown"); + SwigObj *c_ex; + c_ex = SWIG_create_object(SWIG_STR($1_basetype)); + c_ex->obj = (void*) &$1; + SWIG_CThrowException(c_ex, "C++ $1_type exception thrown"); } +%typemap(throws) SWIGTYPE *, SWIGTYPE & { + SwigObj *c_ex; + c_ex = SWIG_create_object(SWIG_STR($1_basetype)); + c_ex->obj = (void*) $1; + SWIG_CThrowException(c_ex, "C++ $1_type exception thrown"); +} + %insert("runtime") %{ - #define SWIG_MAX_RT_STACK 256 SWIGEXPORTC struct { Modified: branches/gsoc2008-maciekd/Source/Modules/c.cxx =================================================================== --- branches/gsoc2008-maciekd/Source/Modules/c.cxx 2008-07-21 18:20:51 UTC (rev 10695) +++ branches/gsoc2008-maciekd/Source/Modules/c.cxx 2008-07-21 18:22:43 UTC (rev 10696) @@ -29,6 +29,7 @@ String *empty_string; String *int_string; String *enum_values; + String *create_object; bool proxy_flag; bool runtime_flag; @@ -44,6 +45,7 @@ empty_string(NewString("")), int_string(NewString("int")), enum_values(0), + create_object(0), proxy_flag(true), runtime_flag(true), typecheck_flag(false) { @@ -91,6 +93,30 @@ } /* --------------------------------------------------------------------- + * start_create_object() + * --------------------------------------------------------------------- */ + + void start_create_object() { + String *s = create_object = NewString(""); + Printf(s, "\nSWIGINTERN SwigObj *SWIG_create_object(const char *classname) {\n"); + Printf(s, "SWIG_Runtime_init();\n"); + Printf(s, "SwigObj *result;\n"); + Printf(s, "result = (SwigObj *) malloc(sizeof(SwigObj));\n"); + Printf(s, "result->obj = 0;\n"); + } + + /* --------------------------------------------------------------------- + * finish_create_object() + * --------------------------------------------------------------------- */ + + String *finish_create_object() { + String *s = create_object; + Printf(s, "return result;\n"); + Printf(s, "}\n\n"); + return create_object; + } + + /* --------------------------------------------------------------------- * top() * --------------------------------------------------------------------- */ @@ -147,10 +173,14 @@ Printf(f_wrappers, "#ifdef __cplusplus\n"); Printf(f_wrappers, "extern \"C\" {\n"); Printf(f_wrappers, "#endif\n\n"); + + start_create_object(); // emit code for children Language::top(n); + Append(f_header, finish_create_object()); + Printf(f_wrappers, "#ifdef __cplusplus\n"); Printf(f_wrappers, "}\n"); Printf(f_wrappers, "#endif\n"); @@ -167,7 +197,7 @@ } // write all to the file - Dump(f_header, f_runtime); + Wrapper_pretty_print(f_header, f_runtime); Dump(f_wrappers, f_runtime); Wrapper_pretty_print(f_init, f_runtime); @@ -710,7 +740,7 @@ // declare type for specific class in the proxy header if (proxy_flag) - Printv(f_proxy_header, "typedef SwigObj ", name, ";\n\n", NIL); + Printv(f_proxy_header, "\ntypedef SwigObj ", name, ";\n\n", NIL); Delete(sobj); Delete(name); @@ -993,23 +1023,27 @@ } /* --------------------------------------------------------------------- - * emit_runtime_make_object() + * add_to_create_object() * --------------------------------------------------------------------- */ - void emit_runtime_make_object(Node *n, String *classname, String *code) { + void add_to_create_object(Node *n, String *classname, String *newclassname) { + String *s = create_object; + + Printv(s, "if (strcmp(classname, \"", classname, "\") == 0) {\n", NIL); + // store the name of each class in the hierarchy List *baselist = Getattr(parentNode(n), "bases"); - Printf(code, "result->typenames = (const char **) malloc(%d*sizeof(const char*));\n", Len(baselist) + 2); - Printv(code, "result->typenames[0] = Swig_typename_", classname, ";\n", NIL); + Printf(s, "result->typenames = (const char **) malloc(%d*sizeof(const char*));\n", Len(baselist) + 2); + Printv(s, "result->typenames[0] = Swig_typename_", newclassname, ";\n", NIL); int i = 1; if (baselist) { Iterator it; for (it = First(baselist); it.item; it = Next(it)) { - Printf(code, "result->typenames[%d] = Swig_typename_%s;\n", i++, Getattr(it.item, "name")); + Printf(s, "result->typenames[%d] = Swig_typename_%s;\n", i++, Getattr(it.item, "sym:name")); } } - Printf(code, "result->typenames[%d] = 0;\n", i); - Printf(code, "SWIG_Runtime_init();\n"); + Printf(s, "result->typenames[%d] = 0;\n", i); + Printf(s, "}\n"); } /* --------------------------------------------------------------------- @@ -1049,10 +1083,9 @@ Setattr(n, "sym:name", constr_name); // generate action code - Printv(code, "result = (", sobj_name, "*) malloc(sizeof(", sobj_name, "));\n", NIL); + add_to_create_object(n, classname, newclassname); + Printv(code, "result = SWIG_create_object(\"", classname, "\");\n", NIL); Printv(code, "result->obj = (void*) new ", classname, arg_lnames, ";\n", NIL); - if (runtime_flag) - emit_runtime_make_object(n, newclassname, code); Setattr(n, "wrap:action", code); @@ -1099,10 +1132,9 @@ Setattr(n, "sym:name", constr_name); // generate action code - Printv(code, "result = (", sobj_name, "*) malloc(sizeof(", sobj_name, "));\n", NIL); + add_to_create_object(n, classname, newclassname); + Printv(code, "result = SWIG_create_object(\"", classname, "\");\n", NIL); Printv(code, "result->obj = (void*) new ", classname, "((", classname, " const &)*arg1);\n", NIL); - if (runtime_flag) - emit_runtime_make_object(n, newclassname, code); Setattr(n, "wrap:action", code); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ma...@us...> - 2008-07-26 14:18:40
|
Revision: 10713 http://swig.svn.sourceforge.net/swig/?rev=10713&view=rev Author: maciekd Date: 2008-07-26 14:18:37 +0000 (Sat, 26 Jul 2008) Log Message: ----------- Removing some memory leak problems when handling exceptions. Modified Paths: -------------- branches/gsoc2008-maciekd/Examples/c/check.list branches/gsoc2008-maciekd/Examples/c/class/Makefile branches/gsoc2008-maciekd/Examples/c/simple/Makefile branches/gsoc2008-maciekd/Lib/c/c.swg branches/gsoc2008-maciekd/Source/Modules/c.cxx Added Paths: ----------- branches/gsoc2008-maciekd/Examples/c/exception/ branches/gsoc2008-maciekd/Examples/c/exception/Makefile branches/gsoc2008-maciekd/Examples/c/exception/example.cxx branches/gsoc2008-maciekd/Examples/c/exception/example.h branches/gsoc2008-maciekd/Examples/c/exception/example.i branches/gsoc2008-maciekd/Examples/c/exception/runme.c Modified: branches/gsoc2008-maciekd/Examples/c/check.list =================================================================== --- branches/gsoc2008-maciekd/Examples/c/check.list 2008-07-26 00:15:21 UTC (rev 10712) +++ branches/gsoc2008-maciekd/Examples/c/check.list 2008-07-26 14:18:37 UTC (rev 10713) @@ -1,3 +1,4 @@ # see top-level Makefile.in class simple +exception Modified: branches/gsoc2008-maciekd/Examples/c/class/Makefile =================================================================== --- branches/gsoc2008-maciekd/Examples/c/class/Makefile 2008-07-26 00:15:21 UTC (rev 10712) +++ branches/gsoc2008-maciekd/Examples/c/class/Makefile 2008-07-26 14:18:37 UTC (rev 10713) @@ -5,6 +5,7 @@ INTERFACE = example.i RUNME = runme.c PROXY = example_proxy.c +MEMTOOL = valgrind --leak-check=full all:: $(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \ @@ -15,7 +16,14 @@ TARGET='$(TARGET)' c_compile env LD_LIBRARY_PATH=. ./runme +memchk: + $(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \ + TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' CXXFLAGS='-g' c_cpp + $(MAKE) -f $(TOP)/Makefile RUNME='$(RUNME)' PROXY='$(PROXY)' \ + TARGET='$(TARGET)' CFLAGS='-g' c_compile + env LD_LIBRARY_PATH=. $(MEMTOOL) ./runme + clean: - rm -f *.o *.out *.so *.a *.dll *.exe *_wrap* *_proxy* *~ + rm -f *.o *.out *.so *.a *.dll *.exe *_wrap* *_proxy* *~ runme check: all Added: branches/gsoc2008-maciekd/Examples/c/exception/Makefile =================================================================== --- branches/gsoc2008-maciekd/Examples/c/exception/Makefile (rev 0) +++ branches/gsoc2008-maciekd/Examples/c/exception/Makefile 2008-07-26 14:18:37 UTC (rev 10713) @@ -0,0 +1,29 @@ +TOP = ../.. +SWIG = $(TOP)/../preinst-swig -debug-module 4 > tree.txt +CXXSRCS = example.cxx +TARGET = example +INTERFACE = example.i +RUNME = runme.c +PROXY = example_proxy.c +MEMTOOL = valgrind --leak-check=full + +all:: + $(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \ + TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' c_cpp + +run: + $(MAKE) -f $(TOP)/Makefile RUNME='$(RUNME)' PROXY='$(PROXY)' \ + TARGET='$(TARGET)' c_compile + env LD_LIBRARY_PATH=. ./runme + +memchk: + $(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \ + TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' CXXFLAGS='-g' c_cpp + $(MAKE) -f $(TOP)/Makefile RUNME='$(RUNME)' PROXY='$(PROXY)' \ + TARGET='$(TARGET)' CFLAGS='-g' c_compile + env LD_LIBRARY_PATH=. $(MEMTOOL) ./runme + +clean: + rm -f *.o *.out *.so *.a *.dll *.exe *_wrap* *_proxy* *~ runme + +check: all Added: branches/gsoc2008-maciekd/Examples/c/exception/example.h =================================================================== --- branches/gsoc2008-maciekd/Examples/c/exception/example.h (rev 0) +++ branches/gsoc2008-maciekd/Examples/c/exception/example.h 2008-07-26 14:18:37 UTC (rev 10713) @@ -0,0 +1,52 @@ +/* File : example.h */ + +#ifndef SWIG +struct A { +}; +#endif + +class Exc { +public: + Exc(int c, const char *m) { + code = c; + strncpy(msg,m,256); + } + int code; + char msg[256]; +}; + +#if defined(_MSC_VER) + #pragma warning(disable: 4290) // C++ exception specification ignored except to indicate a function is not __declspec(nothrow) +#endif + +class Test { +public: + int simple() throw(int&) { + throw(37); + return 1; + } + int message() throw(const char *) { + throw("I died."); + return 1; + } + int hosed() throw(Exc) { + throw(Exc(42,"Hosed")); + return 1; + } + int unknown() throw(A*) { + static A a; + throw &a; + return 1; + } + int multi(int x) throw(int, const char *, Exc) { + if (x == 1) throw(37); + if (x == 2) throw("Bleah!"); + if (x == 3) throw(Exc(42,"No-go-diggy-die")); + return 1; + } +}; + +#if defined(_MSC_VER) + #pragma warning(default: 4290) // C++ exception specification ignored except to indicate a function is not __declspec(nothrow) +#endif + Added: branches/gsoc2008-maciekd/Examples/c/exception/example.i =================================================================== --- branches/gsoc2008-maciekd/Examples/c/exception/example.i (rev 0) +++ branches/gsoc2008-maciekd/Examples/c/exception/example.i 2008-07-26 14:18:37 UTC (rev 10713) @@ -0,0 +1,10 @@ +/* File : example.i */ +%module example + +%{ +#include "example.h" +%} + +/* Let's just grab the original header file here */ +%include "example.h" + Added: branches/gsoc2008-maciekd/Examples/c/exception/runme.c =================================================================== --- branches/gsoc2008-maciekd/Examples/c/exception/runme.c (rev 0) +++ branches/gsoc2008-maciekd/Examples/c/exception/runme.c 2008-07-26 14:18:37 UTC (rev 10713) @@ -0,0 +1,55 @@ +#include <stdio.h> + +#include "example_proxy.h" + +int main() { + Test *t = new_Test(); + + SWIG_try { + Test_unknown(t); + } + SWIG_catch(SWIG_AnyException) { + printf("incomplete type: %s\n", SWIG_exception.msg); + } + SWIG_endtry; + + SWIG_try { + Test_simple(t); + } + SWIG_catch(SWIG_AnyException) { + printf("%s\n", SWIG_exception.msg); + } + SWIG_endtry; + + SWIG_try { + Test_message(t); + } + SWIG_catch(SWIG_AnyException) { + printf("%s\n", SWIG_exception.msg); + } + SWIG_endtry; + + SWIG_try { + Test_hosed(t); + } + SWIG_catch(Exc) { + printf("%d %s\n", Exc_code_get(SWIG_exception.klass), Exc_msg_get(SWIG_exception.klass)); + } + + int i; + for (i = 0; i < 4; ++i) { + SWIG_try { + Test_multi(t, i); + } + SWIG_catch(Exc) { + printf("%d %s\n", Exc_code_get(SWIG_exception.klass), Exc_msg_get(SWIG_exception.klass)); + } + SWIG_catch(SWIG_AnyException) { + printf("%s\n", SWIG_exception.msg); + } + SWIG_endtry; + } + + SWIG_exit(0); +} + Modified: branches/gsoc2008-maciekd/Examples/c/simple/Makefile =================================================================== --- branches/gsoc2008-maciekd/Examples/c/simple/Makefile 2008-07-26 00:15:21 UTC (rev 10712) +++ branches/gsoc2008-maciekd/Examples/c/simple/Makefile 2008-07-26 14:18:37 UTC (rev 10713) @@ -5,6 +5,7 @@ INTERFACE = example.i RUNME = runme.c PROXY = example_proxy.c +MEMTOOL = valgrind --leak-check=full all:: $(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \ @@ -15,7 +16,14 @@ TARGET='$(TARGET)' c_compile env LD_LIBRARY_PATH=. ./runme +memchk: + $(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \ + TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' CFLAGS='-g' c + $(MAKE) -f $(TOP)/Makefile RUNME='$(RUNME)' PROXY='$(PROXY)' \ + TARGET='$(TARGET)' CFLAGS='-g' c_compile + env LD_LIBRARY_PATH=. $(MEMTOOL) ./runme + clean: - rm -f *.o *.so *.out *.a *.exe *.dll *_wrap* *_proxy* *~ + rm -f *.o *.so *.out *.a *.exe *.dll *_wrap* *_proxy* *~ runme check: all Modified: branches/gsoc2008-maciekd/Lib/c/c.swg =================================================================== --- branches/gsoc2008-maciekd/Lib/c/c.swg 2008-07-26 00:15:21 UTC (rev 10712) +++ branches/gsoc2008-maciekd/Lib/c/c.swg 2008-07-26 14:18:37 UTC (rev 10713) @@ -18,11 +18,6 @@ void *obj; const char **typenames; } SwigObj; - -SWIGINTERN SwigObj *SWIG_registry_base = 0; -SWIGINTERN SwigObj *SWIG_registry = 0; - -#define SWIG_STR(x) #x %} // typemaps for function parameters @@ -39,6 +34,7 @@ %typemap(ctype) const short, const int, const long, const char, const float, const double "$1_type" %typemap(ctype) const unsigned short, const unsigned int, const unsigned long, const unsigned char "$1_type" %typemap(ctype) const void *, const short *, const int *, const long *, const char *, const float *, const double *, const bool * "$1_type" +%typemap(ctype) short [ANY], int [ANY], long [ANY], char [ANY], float [ANY], double [ANY], bool [ANY] "$1_basetype *" %typemap(ctype) void * [ANY], short * [ANY], int * [ANY], long * [ANY], char * [ANY], float * [ANY], double * [ANY], bool * [ANY] "$1_basetype **" %typemap(ctype) SWIGTYPE "SwigObj *" %typemap(ctype) SWIGTYPE * "SwigObj *" @@ -62,7 +58,7 @@ %typemap(in) const short &, const int &, const long &, const char &, const float &, const double &, const bool & "$1 = ($1_basetype *) $input;" %typemap(in) unsigned short &, unsigned int &, unsigned long &, unsigned char & "$1 = ($1_basetype *) $input;" %typemap(in) const unsigned short &, const unsigned int &, const unsigned long &, const unsigned char & "$1 = ($1_basetype *) $input;" - +%typemap(in) short [ANY], int [ANY], long [ANY], char [ANY], float [ANY], double [ANY], bool [ANY] "$1 = ($1_basetype *) $input;" %typemap(in) void * [ANY], short * [ANY], int * [ANY], long * [ANY], char * [ANY], float * [ANY], double * [ANY], bool * [ANY] "$1 = ($1_basetype *) $input;" %typemap(in, fragment="stdbool_inc") bool, bool *, bool **, const bool, const bool *, bool * [ANY] "$1 = ($1_type) $input;" @@ -108,6 +104,7 @@ %typemap(couttype) const void *, const short *, const int *, const long *, const char *, const float *, const double * "$1_type" %typemap(couttype) short &, int &, long &, char &, float &, double &, bool & "$1_basetype *" %typemap(couttype) const short &, const int &, const long &, const char &, const float &, const double & "$1_basetype const *" +%typemap(couttype) short [ANY], int [ANY], long [ANY], char [ANY], float [ANY], double [ANY], bool [ANY] "$1_basetype *" %typemap(couttype) SWIGTYPE "SwigObj *" %typemap(couttype) SWIGTYPE * "SwigObj *" %typemap(couttype) SWIGTYPE & "SwigObj *" @@ -126,6 +123,7 @@ %typemap(out) unsigned short &, unsigned int &, unsigned long &, unsigned char & "$result = $1;" %typemap(out) const short &, const int &, const long &, const char &, const float &, const double & "$result = $1;" %typemap(out) const unsigned short &, const unsigned int &, const unsigned long &, const unsigned char & "$result = $1;" +%typemap(out) short [ANY], int [ANY], long [ANY], char [ANY], float [ANY], double [ANY], bool [ANY] "$result = $1;" %typemap(out) void "" %typemap(out, fragment="stdbool_inc") bool, bool *, const bool, const bool * "$result = $1;" @@ -148,17 +146,19 @@ // exception handling -%typemap(throws) int, long, short, unsigned int, unsigned long, unsigned short { +%typemap(throws) BASIC_INT_TYPES { char error_msg[256]; sprintf(error_msg, "C++ $1_type exception thrown, value: %d", $1); SWIG_CThrowException(0, error_msg); } +%apply BASIC_INT_TYPES { int, long, short, unsigned int, unsigned long, unsigned short, int &, long &, short &, unsigned int &, unsigned long &, unsigned short & }; + %typemap(throws) char *, const char * { SWIG_CThrowException(0, $1); } -// this should match only non-built-in objects +// this should match only SwigObj objects %typemap(throws) SWIGTYPE { SwigObj *c_ex; c_ex = SWIG_create_object(SWIG_STR($1_basetype)); @@ -166,7 +166,7 @@ SWIG_CThrowException(c_ex, "C++ $1_type exception thrown"); } -%typemap(throws) SWIGTYPE *, SWIGTYPE & { +%typemap(throws) SWIGTYPE * { SwigObj *c_ex; c_ex = SWIG_create_object(SWIG_STR($1_basetype)); c_ex->obj = (void*) $1; @@ -174,16 +174,27 @@ } %insert("runtime") %{ +#define SWIG_STR(x) #x #define SWIG_MAX_RT_STACK 256 +#define SWIG_REGISTRY_INIT 256 -SWIGEXPORTC struct { +SWIGINTERN SwigObj **SWIG_registry_base = 0; +SWIGINTERN SwigObj **SWIG_registry = 0; +SWIGINTERN int SWIG_registry_size = SWIG_REGISTRY_INIT; + +SWIGINTERN SwigObj *SWIG_create_object(const char *classname); +SWIGINTERN void SWIG_destroy_object(SwigObj *object); + +SWIGEXPORTC struct SWIG_exception_struct { int code; char *msg; SwigObj *klass; -} SWIG_exception; + int handled; +} SWIG_exception = { 0, 0, 0, 0 }; SWIGEXPORTC jmp_buf SWIG_rt_env; SWIGEXPORTC int SWIG_rt_init = 0; +SWIGINTERN jmp_buf SWIG_cpp_back_env; SWIGINTERN jmp_buf *SWIG_rt_stack_base = 0; SWIGINTERN jmp_buf *SWIG_rt_stack_ptr = 0; @@ -200,11 +211,56 @@ memcpy(SWIG_rt_env, SWIG_rt_stack_ptr, sizeof(SWIG_rt_env)); } +SWIGINTERN void SWIG_add_registry_entry(SwigObj *entry) { + if (SWIG_registry_base == 0) { + SWIG_registry_base = SWIG_registry = (SwigObj **) malloc(SWIG_registry_size * sizeof(SwigObj *)); + memset(SWIG_registry_base, 0, SWIG_registry_size * sizeof(SwigObj *)); + } + *SWIG_registry = entry; + SWIG_registry++; + if ((SWIG_registry - SWIG_registry_base) == SWIG_registry_size) { + SWIG_registry = SWIG_registry_base; + SWIG_registry_size += SWIG_REGISTRY_INIT; + int new_size = SWIG_registry_size * sizeof(SwigObj *); + SWIG_registry_base = (SwigObj **) malloc(new_size); + memset(SWIG_registry_base, 0, new_size); + memcpy(SWIG_registry_base, SWIG_registry, (SWIG_registry_size - SWIG_REGISTRY_INIT) * sizeof(SwigObj *)); + free(SWIG_registry); + SWIG_registry = SWIG_registry_base + (SWIG_registry_size - SWIG_REGISTRY_INIT); + } +} + +SWIGINTERN void SWIG_remove_registry_entry(SwigObj *entry) { + int i; + for (i = 0; i < SWIG_registry_size; ++i) { + if (*(SWIG_registry_base + i) == entry) { + *(SWIG_registry_base + i) = 0; + break; + } + } +} + SWIGINTERN void SWIG_cleanup() { if (SWIG_rt_stack_base) free(SWIG_rt_stack_base); if (SWIG_exception.msg) free(SWIG_exception.msg); + if (SWIG_exception.klass) { + if (SWIG_exception.klass->typenames) + free(SWIG_exception.klass->typenames); + free(SWIG_exception.klass); + } + int i; + if (SWIG_registry_base) { + for (i = 0; i < SWIG_registry_size; ++i) { + if (*(SWIG_registry_base + i)) { + SWIG_destroy_object(*(SWIG_registry_base + i)); + *(SWIG_registry_base + i) = 0; + } + } + } + free(SWIG_registry_base); + SWIG_registry_base = 0; } #ifdef __cplusplus @@ -229,8 +285,10 @@ } } } - if (result) + if (result) { SWIG_rt_stack_pop(); + SWIG_exception.handled = 1; + } return result; } @@ -240,20 +298,35 @@ SWIG_exception.msg = (char *) 0; } if (msg) { - SWIG_exception.msg = (char *) malloc(strlen(msg)); + SWIG_exception.msg = (char *) malloc(strlen(msg) + 1); strcpy(SWIG_exception.msg, msg); } SWIG_exception.klass = klass; + SWIG_exception.handled = 0; longjmp(SWIG_rt_env, 1); } -SWIGEXPORTC void SWIG_rt_endtry() { - if (SWIG_exception.msg) +SWIGEXPORTC void SWIG_rt_unhandled() { + if (SWIG_exception.msg) { free(SWIG_exception.msg); + SWIG_exception.msg = 0; + } SWIG_rt_stack_pop(); longjmp(SWIG_rt_env, SWIG_exception.code); } +SWIGEXPORTC void SWIG_rt_endtry() { + if (SWIG_exception.handled) { + if (setjmp(SWIG_rt_env) == 0) { + SWIG_rt_stack_push(); + longjmp(SWIG_cpp_back_env, 1); + } + } + else { + SWIG_rt_stack_pop(); // pop the SWIG_try context + } +} + SWIGEXPORTC int SWIG_exit(int code) { SWIG_cleanup(); exit(code); @@ -264,10 +337,9 @@ #endif SWIGINTERN void SWIG_terminate() { - fprintf(stderr, "Unhandled exception: %s\n%s (error code: %d)\nExitting...\n", + fprintf(stderr, "Unhandled exception: %s\n%s\nExitting...\n", SWIG_exception.klass->typenames[0], - SWIG_exception.msg, - SWIG_exception.code); + SWIG_exception.msg ? SWIG_exception.msg : ""); SWIG_exit(SWIG_exception.code); } @@ -276,17 +348,22 @@ if (!SWIG_rt_init) { SWIG_rt_init = 1; SWIG_rt_stack_base = SWIG_rt_stack_ptr = (jmp_buf *) malloc(sizeof(jmp_buf) * SWIG_MAX_RT_STACK); - if (SWIG_exception.code = setjmp(SWIG_rt_env)) + if (SWIG_exception.code = setjmp(SWIG_rt_env)) { + // deallocate C++ exception + if (setjmp(SWIG_rt_env) == 0) { + SWIG_rt_stack_push(); + SWIG_exception.handled = 1; + longjmp(SWIG_cpp_back_env, 1); + } SWIG_terminate(); + } } } -SWIGINTERN void SWIG_CThrowException(void *klass, const char *msg) { - if (SWIG_rt_init) +#define SWIG_CThrowException(klass, msg) \ + if (setjmp(SWIG_cpp_back_env) == 0) \ SWIG_rt_throw((SwigObj *) klass, msg); - else - SWIG_terminate(); -} + %} %insert("proxy_header") %{ @@ -302,7 +379,7 @@ const char **typenames; } SwigObj; -SWIGIMPORT struct { +SWIGIMPORT struct SWIG_exception_struct { int code; char *msg; SwigObj *klass; @@ -311,7 +388,8 @@ SWIGIMPORT void SWIG_rt_try(); SWIGIMPORT int SWIG_rt_catch(const char *type); SWIGIMPORT void SWIG_rt_throw(SwigObj *klass, const char * msg); -SWIGIMPORT int SWIG_rt_endtry(); +SWIGIMPORT int SWIG_rt_unhandled(); +SWIGIMPORT void SWIG_rt_endtry(); SWIGIMPORT int SWIG_exit(int code); #define SWIG_try \ @@ -320,6 +398,6 @@ #define SWIG_catch(type) else if (SWIG_rt_catch(#type)) #define SWIG_throw(klass) SWIG_rt_throw((SwigObj *) klass, 0); #define SWIG_throw_msg(klass, msg) SWIG_rt_throw((SwigObj *) klass, msg); -#define SWIG_endtry else SWIG_rt_endtry(); +#define SWIG_endtry else SWIG_rt_unhandled(); SWIG_rt_endtry(); %} Modified: branches/gsoc2008-maciekd/Source/Modules/c.cxx =================================================================== --- branches/gsoc2008-maciekd/Source/Modules/c.cxx 2008-07-26 00:15:21 UTC (rev 10712) +++ branches/gsoc2008-maciekd/Source/Modules/c.cxx 2008-07-26 14:18:37 UTC (rev 10713) @@ -30,6 +30,7 @@ String *int_string; String *enum_values; String *create_object; + String *destroy_object; bool proxy_flag; bool runtime_flag; @@ -46,6 +47,7 @@ int_string(NewString("int")), enum_values(0), create_object(0), + destroy_object(0), proxy_flag(true), runtime_flag(true), typecheck_flag(false) { @@ -111,12 +113,36 @@ String *finish_create_object() { String *s = create_object; + //Printf(s, "SWIG_add_registry_entry(result);\n"); Printf(s, "return result;\n"); Printf(s, "}\n\n"); return create_object; } /* --------------------------------------------------------------------- + * start_destroy_object() + * --------------------------------------------------------------------- */ + + void start_destroy_object() { + String *s = destroy_object = NewString(""); + Printf(s, "\nSWIGINTERN void SWIG_destroy_object(SwigObj *object) {\n"); + Printf(s, "if (object)\nif (object->typenames) {\n"); + } + + /* --------------------------------------------------------------------- + * finish_destroy_object() + * --------------------------------------------------------------------- */ + + String *finish_destroy_object() { + String *s = destroy_object; + Printf(s, "free(object->typenames);\n"); + Printf(s, "free(object);\n"); + Printf(s, "object = (SwigObj *) 0;\n"); + Printf(s, "}\n}\n"); + return destroy_object; + } + + /* --------------------------------------------------------------------- * top() * --------------------------------------------------------------------- */ @@ -175,11 +201,13 @@ Printf(f_wrappers, "#endif\n\n"); start_create_object(); + start_destroy_object(); // emit code for children Language::top(n); Append(f_header, finish_create_object()); + Append(f_header, finish_destroy_object()); Printf(f_wrappers, "#ifdef __cplusplus\n"); Printf(f_wrappers, "}\n"); @@ -468,7 +496,9 @@ if (!is_void_return && (Cmp(Getattr(n, "c:objstruct"), "1") != 0)) { if (SwigType_isconst(type)) SwigType_del_qualifier(type); - SwigType *return_var_type = SwigType_isreference(type) ? SwigType_add_pointer(SwigType_base(type)) : type; + SwigType *return_var_type; + return_var_type = SwigType_isreference(type) ? SwigType_add_pointer(SwigType_base(type)) : type; + return_var_type = SwigType_isarray(type) ? SwigType_add_pointer(SwigType_base(type)) : type; if (SwigType_isenum(type)) Wrapper_add_localv(wrapper, "cppresult", "int", "cppresult", NIL); else @@ -568,6 +598,9 @@ // emit action code String *action = emit_action(n); + if (Getattr(n, "throws")) { + Printf(action, "if (SWIG_exception.handled) {\nSWIG_rt_stack_pop();\nlongjmp(SWIG_rt_env, 1);\n}\n"); + } Replaceall(action, "$cppresult", "cppresult"); // handle return-by-reference @@ -954,9 +987,19 @@ if (!SwigType_isconst(type)) { // create code for 'set' function - code = NewString(""); - if (SwigType_isenum(Getattr(n, "type")) && Getattr(n, "unnamed")) - Printf(code, "* (int *) &"); + if (SwigType_isarray(Getattr(n, "type"))) { + code = NewString(""); + Printf(code, "if (arg2) {\n"); + Printf(code, "int i;\n"); + Printv(code, "for (i = 0; i < ", SwigType_array_getdim(Getattr(n, "type"), 0), "; ++i) {\n", NIL); + Printv(code, classname, "::", name, "[i] = arg2[i];\n", NIL); + Printf(code, "}\n}\n"); + } + else if (SwigType_isenum(Getattr(n, "type")) && Getattr(n, "unnamed")) { + code = NewString("* (int *) &"); + } + else + code = NewString(""); Printv(code, classname, "::", name, " = arg1;\n", NIL); wrap_set_variable(n, classname, newclassname, name, code); } @@ -1006,8 +1049,16 @@ set_nextSibling(p, t); Setattr(n, "parms", p); String *code = 0; - if (SwigType_isenum(Getattr(n, "type")) && Getattr(n, "unnamed")) { + if (SwigType_isarray(Getattr(n, "type"))) { code = NewString(""); + Printf(code, "if (arg2) {\n"); + Printf(code, "int i;\n"); + Printv(code, "for (i = 0; i < ", SwigType_array_getdim(Getattr(n, "type"), 0), "; ++i) {\n", NIL); + Printv(code, "((", classname, "*) arg1->obj)->", name, "[i] = arg2[i];\n", NIL); + Printf(code, "}\n}\n"); + } + else if (SwigType_isenum(Getattr(n, "type")) && Getattr(n, "unnamed")) { + code = NewString(""); Printv(code, "* (int *) &((", classname, "*) arg1->obj)->", name, " = arg2;\n", NIL); } Setattr(n, "type", "void"); @@ -1044,6 +1095,12 @@ } Printf(s, "result->typenames[%d] = 0;\n", i); Printf(s, "}\n"); + + s = destroy_object; + + Printv(s, "if (strcmp(object->typenames[0], \"", classname, "\") == 0) {\n", NIL); + Printv(s, "if (object->obj)\ndelete (", classname, " *) (object->obj);\n", NIL); + Printf(s, "}\n"); } /* --------------------------------------------------------------------- @@ -1087,6 +1144,8 @@ Printv(code, "result = SWIG_create_object(\"", classname, "\");\n", NIL); Printv(code, "result->obj = (void*) new ", classname, arg_lnames, ";\n", NIL); + Printf(code, "SWIG_add_registry_entry(result);\n"); + Setattr(n, "wrap:action", code); functionWrapper(n); @@ -1153,7 +1212,6 @@ * --------------------------------------------------------------------- */ virtual int destructorHandler(Node *n) { - String *classname = Getattr(parentNode(n), "classtype"); String *newclassname = Getattr(parentNode(n), "sym:name"); String *sobj_name = NewString(""); String *ctype; @@ -1183,10 +1241,8 @@ if (typecheck_flag) emit_runtime_typecheck(newclassname, destr_name, code); - Printv(code, "if (arg1) if (arg1->obj) {\n", NIL); - Printv(code, " delete (", classname, "*) (arg1->obj);\n", NIL); - Printv(code, " free(arg1->typenames);\n free(arg1);\n", NIL); - Printv(code, " arg1 = (", sobj_name, "*)0;\n}\n", NIL); + Printf(code, "SWIG_remove_registry_entry(arg1);\n"); + Printf(code, "SWIG_destroy_object(arg1);\n"); Setattr(n, "wrap:action", code); functionWrapper(n); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ma...@us...> - 2008-07-30 22:09:09
|
Revision: 10720 http://swig.svn.sourceforge.net/swig/?rev=10720&view=rev Author: maciekd Date: 2008-07-30 22:09:02 +0000 (Wed, 30 Jul 2008) Log Message: ----------- Added std_string support. Renamed SWIG_exception to SWIG_exc to avoid name collision with macro in Lib/exception.i. Modified Paths: -------------- branches/gsoc2008-maciekd/Examples/c/exception/runme.c branches/gsoc2008-maciekd/Examples/test-suite/c/exception_order_runme.c branches/gsoc2008-maciekd/Lib/c/c.swg branches/gsoc2008-maciekd/Lib/exception.i branches/gsoc2008-maciekd/Source/Modules/c.cxx Added Paths: ----------- branches/gsoc2008-maciekd/Lib/c/std_string.i Modified: branches/gsoc2008-maciekd/Examples/c/exception/runme.c =================================================================== --- branches/gsoc2008-maciekd/Examples/c/exception/runme.c 2008-07-30 20:50:31 UTC (rev 10719) +++ branches/gsoc2008-maciekd/Examples/c/exception/runme.c 2008-07-30 22:09:02 UTC (rev 10720) @@ -9,7 +9,7 @@ Test_unknown(t); } SWIG_catch(SWIG_AnyException) { - printf("incomplete type: %s\n", SWIG_exception.msg); + printf("incomplete type: %s\n", SWIG_exc.msg); } SWIG_endtry; @@ -17,7 +17,7 @@ Test_simple(t); } SWIG_catch(SWIG_AnyException) { - printf("%s\n", SWIG_exception.msg); + printf("%s\n", SWIG_exc.msg); } SWIG_endtry; @@ -25,7 +25,7 @@ Test_message(t); } SWIG_catch(SWIG_AnyException) { - printf("%s\n", SWIG_exception.msg); + printf("%s\n", SWIG_exc.msg); } SWIG_endtry; @@ -33,7 +33,8 @@ Test_hosed(t); } SWIG_catch(Exc) { - printf("%d %s\n", Exc_code_get(SWIG_exception.klass), Exc_msg_get(SWIG_exception.klass)); + printf("%d %s\n", Exc_code_get(SWIG_exc.klass), + Exc_msg_get(SWIG_exc.klass)); } int i; @@ -42,10 +43,11 @@ Test_multi(t, i); } SWIG_catch(Exc) { - printf("%d %s\n", Exc_code_get(SWIG_exception.klass), Exc_msg_get(SWIG_exception.klass)); + printf("%d %s\n", Exc_code_get(SWIG_exc.klass), + Exc_msg_get(SWIG_exc.klass)); } SWIG_catch(SWIG_AnyException) { - printf("%s\n", SWIG_exception.msg); + printf("%s\n", SWIG_exc.msg); } SWIG_endtry; } Modified: branches/gsoc2008-maciekd/Examples/test-suite/c/exception_order_runme.c =================================================================== --- branches/gsoc2008-maciekd/Examples/test-suite/c/exception_order_runme.c 2008-07-30 20:50:31 UTC (rev 10719) +++ branches/gsoc2008-maciekd/Examples/test-suite/c/exception_order_runme.c 2008-07-30 22:09:02 UTC (rev 10720) @@ -31,9 +31,9 @@ A_foobar(a); } SWIG_catch(SWIG_AnyException) { - if (strcmp(SWIG_exception.msg, "postcatch unknown") != 0) { + if (strcmp(SWIG_exc.msg, "postcatch unknown") != 0) { fprintf(stderr, "bad exception order\n"); - SWIG_throw_msg(SWIG_exception.klass, SWIG_exception.msg); + SWIG_throw_msg(SWIG_exc.klass, SWIG_exc.msg); } } SWIG_endtry; Modified: branches/gsoc2008-maciekd/Lib/c/c.swg =================================================================== --- branches/gsoc2008-maciekd/Lib/c/c.swg 2008-07-30 20:50:31 UTC (rev 10719) +++ branches/gsoc2008-maciekd/Lib/c/c.swg 2008-07-30 22:09:02 UTC (rev 10720) @@ -72,12 +72,12 @@ %typemap(in) SWIGTYPE * { if ($input) - $1 = ($1_type) $input->obj; + $1 = ($1_ltype) $input->obj; } %typemap(in) SWIGTYPE * [ANY] { if ($input) { - $1 = ($1_basetype*) malloc($1_dim0 * sizeof($1_basetype)); + $1 = ($1_basetype *) malloc($1_dim0 * sizeof($1_basetype)); int i; for (i = 0; i < $1_dim0; ++i) if ($input[i]) @@ -185,12 +185,12 @@ SWIGINTERN SwigObj *SWIG_create_object(const char *classname); SWIGINTERN void SWIG_destroy_object(SwigObj *object); -SWIGEXPORTC struct SWIG_exception_struct { +SWIGEXPORTC struct SWIG_exc_struct { int code; char *msg; SwigObj *klass; int handled; -} SWIG_exception = { 0, 0, 0, 0 }; +} SWIG_exc = { 0, 0, 0, 0 }; SWIGEXPORTC jmp_buf SWIG_rt_env; SWIGEXPORTC int SWIG_rt_init = 0; @@ -243,12 +243,12 @@ SWIGINTERN void SWIG_cleanup() { if (SWIG_rt_stack_base) free(SWIG_rt_stack_base); - if (SWIG_exception.msg) - free(SWIG_exception.msg); - if (SWIG_exception.klass) { - if (SWIG_exception.klass->typenames) - free(SWIG_exception.klass->typenames); - free(SWIG_exception.klass); + if (SWIG_exc.msg) + free(SWIG_exc.msg); + if (SWIG_exc.klass) { + if (SWIG_exc.klass->typenames) + free(SWIG_exc.klass->typenames); + free(SWIG_exc.klass); } int i; if (SWIG_registry_base) { @@ -276,10 +276,10 @@ if (!type || (strcmp("SWIG_AnyException", type) == 0)) { result = 1; } - else if (SWIG_exception.klass) { + else if (SWIG_exc.klass) { int i = 0; - while (SWIG_exception.klass->typenames[i]) { - if (strcmp(SWIG_exception.klass->typenames[i++], type) == 0) { + while (SWIG_exc.klass->typenames[i]) { + if (strcmp(SWIG_exc.klass->typenames[i++], type) == 0) { result = 1; break; } @@ -287,36 +287,36 @@ } if (result) { SWIG_rt_stack_pop(); - SWIG_exception.handled = 1; + SWIG_exc.handled = 1; } return result; } SWIGEXPORTC void SWIG_rt_throw(SwigObj *klass, const char *msg) { - if (SWIG_exception.msg) { - free(SWIG_exception.msg); - SWIG_exception.msg = (char *) 0; + if (SWIG_exc.msg) { + free(SWIG_exc.msg); + SWIG_exc.msg = (char *) 0; } if (msg) { - SWIG_exception.msg = (char *) malloc(strlen(msg) + 1); - strcpy(SWIG_exception.msg, msg); + SWIG_exc.msg = (char *) malloc(strlen(msg) + 1); + strcpy(SWIG_exc.msg, msg); } - SWIG_exception.klass = klass; - SWIG_exception.handled = 0; + SWIG_exc.klass = klass; + SWIG_exc.handled = 0; longjmp(SWIG_rt_env, 1); } SWIGEXPORTC void SWIG_rt_unhandled() { - if (SWIG_exception.msg) { - free(SWIG_exception.msg); - SWIG_exception.msg = 0; + if (SWIG_exc.msg) { + free(SWIG_exc.msg); + SWIG_exc.msg = 0; } SWIG_rt_stack_pop(); - longjmp(SWIG_rt_env, SWIG_exception.code); + longjmp(SWIG_rt_env, SWIG_exc.code); } SWIGEXPORTC void SWIG_rt_endtry() { - if (SWIG_exception.handled) { + if (SWIG_exc.handled) { if (setjmp(SWIG_rt_env) == 0) { SWIG_rt_stack_push(); longjmp(SWIG_cpp_back_env, 1); @@ -338,9 +338,9 @@ SWIGINTERN void SWIG_terminate() { fprintf(stderr, "Unhandled exception: %s\n%s\nExitting...\n", - SWIG_exception.klass->typenames[0], - SWIG_exception.msg ? SWIG_exception.msg : ""); - SWIG_exit(SWIG_exception.code); + SWIG_exc.klass->typenames[0], + SWIG_exc.msg ? SWIG_exc.msg : ""); + SWIG_exit(SWIG_exc.code); } SWIGINTERN void SWIG_Runtime_init() { @@ -348,11 +348,11 @@ if (!SWIG_rt_init) { SWIG_rt_init = 1; SWIG_rt_stack_base = SWIG_rt_stack_ptr = (jmp_buf *) malloc(sizeof(jmp_buf) * SWIG_MAX_RT_STACK); - if (SWIG_exception.code = setjmp(SWIG_rt_env)) { + if (SWIG_exc.code = setjmp(SWIG_rt_env)) { // deallocate C++ exception if (setjmp(SWIG_rt_env) == 0) { SWIG_rt_stack_push(); - SWIG_exception.handled = 1; + SWIG_exc.handled = 1; longjmp(SWIG_cpp_back_env, 1); } SWIG_terminate(); @@ -379,11 +379,11 @@ const char **typenames; } SwigObj; -SWIGIMPORT struct SWIG_exception_struct { +SWIGIMPORT struct SWIG_exc_struct { int code; char *msg; SwigObj *klass; -} SWIG_exception; +} SWIG_exc; SWIGIMPORT void SWIG_rt_try(); SWIGIMPORT int SWIG_rt_catch(const char *type); @@ -394,7 +394,7 @@ #define SWIG_try \ SWIG_rt_try(); \ - if ((SWIG_exception.code = setjmp(SWIG_rt_env)) == 0) + if ((SWIG_exc.code = setjmp(SWIG_rt_env)) == 0) #define SWIG_catch(type) else if (SWIG_rt_catch(#type)) #define SWIG_throw(klass) SWIG_rt_throw((SwigObj *) klass, 0); #define SWIG_throw_msg(klass, msg) SWIG_rt_throw((SwigObj *) klass, msg); Added: branches/gsoc2008-maciekd/Lib/c/std_string.i =================================================================== --- branches/gsoc2008-maciekd/Lib/c/std_string.i (rev 0) +++ branches/gsoc2008-maciekd/Lib/c/std_string.i 2008-07-30 22:09:02 UTC (rev 10720) @@ -0,0 +1,50 @@ +%{ +#include <string> +%} + +namespace std { + +// use "const string &" typemaps for wrapping member strings +%naturalvar string; + +class string; + +%typemap(ctype) string "char *" +%typemap(ctype) const string & "char *" +%typemap(couttype) string "char *" +%typemap(couttype) const string & "char *" + +%typemap(in) string { + if ($input) { + $1.assign($input); + } + else { + $1.resize(0); + } +} + +%typemap(in) const string & { + if ($input) { + $1 = new std::string($input); + } + else { + $1 = new std::string(); + $1->resize(0); + } +} + +%typemap(freearg) const string & { + if ($1) + delete $1; +} + +%typemap(out) string, const string & { + const char *str = cppresult.c_str(); + size_t len = strlen(str); + $result = (char *) malloc(len + 1); + memcpy($result, str, len); + $result[len] = '\0'; +} + +} + Modified: branches/gsoc2008-maciekd/Lib/exception.i =================================================================== --- branches/gsoc2008-maciekd/Lib/exception.i 2008-07-30 20:50:31 UTC (rev 10719) +++ branches/gsoc2008-maciekd/Lib/exception.i 2008-07-30 22:09:02 UTC (rev 10720) @@ -217,13 +217,15 @@ %inline %{ struct SWIG_CException { SWIG_CException(int code) { - SWIG_exception.code = code; + SWIG_exc.code = code; } }; %} #define SWIG_exception(code, msg)\ - SWIG_CThrowException(_wrap_new_SWIG_CException(code), msg); + SwigObj *_ex = SWIG_create_object("SWIG_CException"); \ + _ex->obj = (void *) new SWIG_CException(code); \ + SWIG_CThrowException(_ex, msg); #endif // SWIGC Modified: branches/gsoc2008-maciekd/Source/Modules/c.cxx =================================================================== --- branches/gsoc2008-maciekd/Source/Modules/c.cxx 2008-07-30 20:50:31 UTC (rev 10719) +++ branches/gsoc2008-maciekd/Source/Modules/c.cxx 2008-07-30 22:09:02 UTC (rev 10720) @@ -510,12 +510,19 @@ if (SwigType_isconst(type)) SwigType_del_qualifier(type); SwigType *return_var_type; - return_var_type = SwigType_isreference(type) ? SwigType_add_pointer(SwigType_base(type)) : type; - return_var_type = SwigType_isarray(type) ? SwigType_add_pointer(SwigType_base(type)) : type; + if (SwigType_isenum(type)) Wrapper_add_localv(wrapper, "cppresult", "int", "cppresult", NIL); - else + else { + if (SwigType_isreference(type)) + return_var_type = SwigType_base(type); + else if (SwigType_isarray(type)) + return_var_type = SwigType_add_pointer(SwigType_base(type)); + else + return_var_type = type; + Wrapper_add_localv(wrapper, "cppresult", SwigType_str(return_var_type, 0), "cppresult", NIL); + } } // make sure lnames are set @@ -618,7 +625,7 @@ // emit action code String *action = emit_action(n); if (Getattr(n, "throws") || (Cmp(Getattr(n, "feature:except"), "0") != 0)) { - Printf(action, "if (SWIG_exception.handled) {\nSWIG_rt_stack_pop();\nlongjmp(SWIG_rt_env, 1);\n}\n"); + Printf(action, "if (SWIG_exc.handled) {\nSWIG_rt_stack_pop();\nlongjmp(SWIG_rt_env, 1);\n}\n"); } if (Cmp(nodeType(n), "constructor") != 0) Replace(action, "result =", "cppresult = $mod", DOH_REPLACE_FIRST); @@ -627,8 +634,8 @@ if (SwigType_isreference(type)) { String *ref_cast = NewString(""); if (SwigType_isconst(SwigType_del_reference(type))) { - Printf(ref_cast, "const_cast<%s*>(&", SwigType_str(SwigType_base(type), 0)); - Replaceall(action, ";", ");"); + //Printf(ref_cast, "(%s*)", SwigType_str(SwigType_base(type), 0)); + Printf(ref_cast, "*"); } else Printf(ref_cast, "&"); @@ -656,6 +663,35 @@ Append(wrapper->code, action); } + // insert constraint checking + for (p = parms; p; ) { + if ((tm = Getattr(p, "tmap:check"))) { + Replaceall(tm, "$target", Getattr(p, "lname")); + Printv(wrapper->code, tm, "\n", NIL); + p = Getattr(p, "tmap:check:next"); + } + else { + p = nextSibling(p); + } + } + + // insert cleanup code + for (p = parms; p; ) { + if ((tm = Getattr(p, "tmap:freearg"))) { + if (tm && (Len(tm) != 0)) { + String *input = NewStringf("c%s", Getattr(p, "lname")); + Replaceall(tm, "$source", Getattr(p, "lname")); + Replaceall(tm, "$input", input); + Delete(input); + Printv(wrapper->code, tm, "\n", NIL); + } + p = Getattr(p, "tmap:freearg:next"); + } + else { + p = nextSibling(p); + } + } + if (!is_void_return) Append(wrapper->code, "return result;\n"); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ma...@us...> - 2008-08-09 20:14:46
|
Revision: 10748 http://swig.svn.sourceforge.net/swig/?rev=10748&view=rev Author: maciekd Date: 2008-08-09 20:14:41 +0000 (Sat, 09 Aug 2008) Log Message: ----------- Some function return cases fixed. Modified Paths: -------------- branches/gsoc2008-maciekd/Lib/c/c.swg branches/gsoc2008-maciekd/Lib/c/std_string.i branches/gsoc2008-maciekd/Source/Modules/c.cxx Modified: branches/gsoc2008-maciekd/Lib/c/c.swg =================================================================== --- branches/gsoc2008-maciekd/Lib/c/c.swg 2008-08-09 04:08:26 UTC (rev 10747) +++ branches/gsoc2008-maciekd/Lib/c/c.swg 2008-08-09 20:14:41 UTC (rev 10748) @@ -28,14 +28,14 @@ %typemap(ctype) void **, short **, int **, long **, char **, float **, double ** "$1_type" %typemap(ctype) unsigned short *, unsigned int *, unsigned long *, unsigned char * "$1_type" %typemap(ctype) unsigned short **, unsigned int **, unsigned long **, unsigned char ** "$1_type" -%typemap(ctype) short &, int &, long &, char &, float &, double & "$1_basetype *" +%typemap(ctype) short &, int &, long &, char &, float &, double & "$1_basetype *" %typemap(ctype) unsigned short &, unsigned int &, unsigned long &, unsigned char & "$1_basetype *" -%typemap(ctype) const short &, const int &, const long &, const char &, const float &, const double & "$1_basetype *" -%typemap(ctype) const short, const int, const long, const char, const float, const double "$1_type" +%typemap(ctype) const short &, const int &, const long &, const char &, const float &, const double & "$1_basetype const *" +%typemap(ctype) const short, const int, const long, const char, const float, const double "$1_type" %typemap(ctype) const unsigned short, const unsigned int, const unsigned long, const unsigned char "$1_type" -%typemap(ctype) const void *, const short *, const int *, const long *, const char *, const float *, const double *, const bool * "$1_type" -%typemap(ctype) short [ANY], int [ANY], long [ANY], char [ANY], float [ANY], double [ANY], bool [ANY] "$1_basetype *" -%typemap(ctype) void * [ANY], short * [ANY], int * [ANY], long * [ANY], char * [ANY], float * [ANY], double * [ANY], bool * [ANY] "$1_basetype **" +%typemap(ctype) const void *, const short *, const int *, const long *, const char *, const float *, const double * "$1_type" +%typemap(ctype) short [ANY], int [ANY], long [ANY], char [ANY], float [ANY], double [ANY] "$1_basetype *" +%typemap(ctype) void * [ANY], short * [ANY], int * [ANY], long * [ANY], char * [ANY], float * [ANY], double * [ANY] "$1_basetype **" %typemap(ctype) SWIGTYPE "SwigObj *" %typemap(ctype) SWIGTYPE * "SwigObj *" %typemap(ctype) SWIGTYPE & "SwigObj *" @@ -44,25 +44,27 @@ %fragment("stdbool_inc", "proxy_header") {#include <stdbool.h>} %typemap(ctype, fragment="stdbool_inc") bool, bool *, bool **, const bool, const bool *, bool * [ANY] "$1_type" -%typemap(ctype, fragment="stdbool_inc") bool &, const bool & "$1_basetype *" +%typemap(ctype, fragment="stdbool_inc") bool & "$1_basetype *" +%typemap(ctype, fragment="stdbool_inc") const bool & "$1_basetype const *" -%typemap(in) short, int, long, char, float, double, bool "$1 = ($1_type) $input;" -%typemap(in) void *, short *, int *, long *, char *, float *, double *, bool * "$1 = ($1_type) $input;" -%typemap(in) void **, short **, int **, long **, char **, float **, double **, bool * "$1 = ($1_basetype **) $input;" +%typemap(in) short, int, long, char, float, double "$1 = ($1_type) $input;" +%typemap(in) void *, short *, int *, long *, char *, float *, double * "$1 = ($1_type) $input;" +%typemap(in) void **, short **, int **, long **, char **, float **, double ** "$1 = ($1_basetype **) $input;" %typemap(in) unsigned short *, unsigned int *, unsigned long *, unsigned char * "$1 = ($1_type) $input;" %typemap(in) unsigned short **, unsigned int **, unsigned long **, unsigned char ** "$1 = ($1_type) $input;" -%typemap(in) const void *, const short *, const int *, const long *, const char *, const float *, const double *, const bool * "$1 = ($1_basetype *) $input;" +%typemap(in) const void *, const short *, const int *, const long *, const char *, const float *, const double * "$1 = ($1_basetype *) $input;" %typemap(in) const unsigned short *, const unsigned int *, const unsigned long *, const unsigned char * "$1 = ($1_type) $input;" %typemap(in) unsigned short, unsigned int, unsigned long, unsigned char "$1 = ($1_type) $input;" %typemap(in) short &, int &, long &, char &, float &, double &, bool & "$1 = ($1_basetype *) $input;" -%typemap(in) const short &, const int &, const long &, const char &, const float &, const double &, const bool & "$1 = ($1_basetype *) $input;" +%typemap(in) const short &, const int &, const long &, const char &, const float &, const double & "$1 = ($1_basetype *) $input;" %typemap(in) unsigned short &, unsigned int &, unsigned long &, unsigned char & "$1 = ($1_basetype *) $input;" %typemap(in) const unsigned short &, const unsigned int &, const unsigned long &, const unsigned char & "$1 = ($1_basetype *) $input;" -%typemap(in) short [ANY], int [ANY], long [ANY], char [ANY], float [ANY], double [ANY], bool [ANY] "$1 = ($1_basetype *) $input;" -%typemap(in) void * [ANY], short * [ANY], int * [ANY], long * [ANY], char * [ANY], float * [ANY], double * [ANY], bool * [ANY] "$1 = ($1_basetype *) $input;" +%typemap(in) short [ANY], int [ANY], long [ANY], char [ANY], float [ANY], double [ANY] "$1 = ($1_basetype *) $input;" +%typemap(in) void * [ANY], short * [ANY], int * [ANY], long * [ANY], char * [ANY], float * [ANY], double * [ANY] "$1 = ($1_basetype *) $input;" -%typemap(in, fragment="stdbool_inc") bool, bool *, bool **, const bool, const bool *, bool * [ANY] "$1 = ($1_type) $input;" -%typemap(in, fragment="stdbool_inc") bool &, const bool & "$1 = ($1_basetype *) $input;" +%typemap(in, fragment="stdbool_inc") bool, bool *, bool **, const bool, const bool * "$1 = ($1_type) $input;" +%typemap(in, fragment="stdbool_inc") bool & "$1 = ($1_basetype *) $input;" +%typemap(in, fragment="stdbool_inc") const bool &, const bool * "$1 = ($1_basetype *) $input;" %typemap(in) enum SWIGTYPE "$1 = ($1_type) $input;" @@ -102,16 +104,17 @@ %typemap(couttype) void *, short *, int *, long *, char *, float *, double* "$1_type" %typemap(couttype) const short, const int, const long, const char, const float, const double "$1_basetype" %typemap(couttype) const void *, const short *, const int *, const long *, const char *, const float *, const double * "$1_type" -%typemap(couttype) short &, int &, long &, char &, float &, double &, bool & "$1_basetype *" +%typemap(couttype) short &, int &, long &, char &, float &, double & "$1_basetype *" %typemap(couttype) const short &, const int &, const long &, const char &, const float &, const double & "$1_basetype const *" -%typemap(couttype) short [ANY], int [ANY], long [ANY], char [ANY], float [ANY], double [ANY], bool [ANY] "$1_basetype *" +%typemap(couttype) short [ANY], int [ANY], long [ANY], char [ANY], float [ANY], double [ANY] "$1_basetype *" %typemap(couttype) SWIGTYPE "SwigObj *" %typemap(couttype) SWIGTYPE * "SwigObj *" %typemap(couttype) SWIGTYPE & "SwigObj *" %typemap(couttype) enum SWIGTYPE "$1_type" %typemap(couttype, fragment="stdbool_inc") bool, bool *, const bool, const bool * "$1_type" -%typemap(couttype, fragment="stdbool_inc") bool &, const bool & "$1_basetype *" +%typemap(couttype, fragment="stdbool_inc") bool & "$1_basetype*" +%typemap(couttype, fragment="stdbool_inc") const bool & "$1_basetype const *" %typemap(out) short, int, long, char, float, double "$result = $1;" %typemap(out) void*, short*, int*, long*, char*, float*, double* "$result = $1;" @@ -123,7 +126,7 @@ %typemap(out) unsigned short &, unsigned int &, unsigned long &, unsigned char & "$result = $1;" %typemap(out) const short &, const int &, const long &, const char &, const float &, const double & "$result = $1;" %typemap(out) const unsigned short &, const unsigned int &, const unsigned long &, const unsigned char & "$result = $1;" -%typemap(out) short [ANY], int [ANY], long [ANY], char [ANY], float [ANY], double [ANY], bool [ANY] "$result = $1;" +%typemap(out) short [ANY], int [ANY], long [ANY], char [ANY], float [ANY], double [ANY] "$result = $1;" %typemap(out) void "" %typemap(out, fragment="stdbool_inc") bool, bool *, const bool, const bool * "$result = $1;" Modified: branches/gsoc2008-maciekd/Lib/c/std_string.i =================================================================== --- branches/gsoc2008-maciekd/Lib/c/std_string.i 2008-08-09 04:08:26 UTC (rev 10747) +++ branches/gsoc2008-maciekd/Lib/c/std_string.i 2008-08-09 20:14:41 UTC (rev 10748) @@ -38,8 +38,8 @@ delete $1; } -%typemap(out) string, const string & { - const char *str = cppresult.c_str(); +%typemap(out) string, const string &, string * { + const char *str = cppresult->c_str(); size_t len = strlen(str); $result = (char *) malloc(len + 1); memcpy($result, str, len); Modified: branches/gsoc2008-maciekd/Source/Modules/c.cxx =================================================================== --- branches/gsoc2008-maciekd/Source/Modules/c.cxx 2008-08-09 04:08:26 UTC (rev 10747) +++ branches/gsoc2008-maciekd/Source/Modules/c.cxx 2008-08-09 20:14:41 UTC (rev 10748) @@ -254,7 +254,7 @@ * globalfunctionHandler() * ------------------------------------------------------------------------ */ - virtual int globalfunctionHandler(Node *n ) { + virtual int globalfunctionHandler(Node *n) { String *action = NewString(""); String *vis_hint = NewString(""); String *return_type_str = SwigType_str(Getattr(n, "type"), 0); @@ -390,9 +390,7 @@ Node *node = Swig_symbol_clookup(query, symtab); if (node) newtype = NewStringf("enum %s", Getattr(node, "name")); - else - newtype = Copy(enumtype); - + return newtype; } @@ -411,6 +409,7 @@ String *tm; String *proto = NewString(""); String *over_suffix = NewString(""); + SwigType *return_var_type = empty_string; int gencomma; bool is_void_return = (SwigType_type(type) == T_VOID); @@ -503,10 +502,6 @@ // add variable for holding result of original function bool return_object = false; if (!is_void_return && (Cmp(Getattr(n, "c:objstruct"), "1") != 0)) { - if (SwigType_isconst(type)) - SwigType_del_qualifier(type); - SwigType *return_var_type; - SwigType *tdtype = SwigType_typedef_resolve(type); if (tdtype) type = tdtype; @@ -515,11 +510,29 @@ Wrapper_add_localv(wrapper, "cppresult", "int", "cppresult", NIL); } else if (SwigType_isbuiltin(SwigType_base(type))) { + if (SwigType_isconst(type)) + SwigType_del_qualifier(type); + // type is built-in (int, char, double, etc.) - if (SwigType_isreference(type) || SwigType_isarray(type)) - return_var_type = SwigType_add_pointer(SwigType_base(type)); - else + if (SwigType_isreference(type)) { + if (SwigType_isconst(SwigType_del_reference(type))) { + return_var_type = SwigType_base(type); + SwigType_add_qualifier(return_var_type, "const"); + SwigType_add_pointer(return_var_type); + } + else { + return_var_type = SwigType_base(type); + SwigType_add_pointer(return_var_type); + } + SwigType_add_reference(type); + } + else if (SwigType_isarray(type)) { + return_var_type = SwigType_base(type); + SwigType_add_pointer(return_var_type); + } + else { return_var_type = type; + } Wrapper_add_localv(wrapper, "cppresult", SwigType_str(return_var_type, 0), "cppresult", NIL); } @@ -527,10 +540,14 @@ // type is class if (SwigType_ispointer(type)) return_var_type = type; - else if (SwigType_isreference(type) || SwigType_isarray(type)) - return_var_type = SwigType_add_pointer(SwigType_base(type)); - else - return_var_type = SwigType_add_pointer(type); + else if (SwigType_isreference(type) || SwigType_isarray(type)) { + return_var_type = SwigType_base(type); + SwigType_add_pointer(return_var_type); + } + else { + return_var_type = type; + SwigType_add_pointer(return_var_type); + } Wrapper_add_localv(wrapper, "cppresult", SwigType_str(return_var_type, 0), "cppresult", NIL); return_object = true; @@ -643,25 +660,25 @@ } if (Cmp(nodeType(n), "constructor") != 0) Replace(action, "result =", "cppresult = $mod", DOH_REPLACE_FIRST); - - // handle return-by-reference - if (SwigType_isreference(type)) { - String *ref_cast = NewString(""); - if (SwigType_isconst(SwigType_del_reference(type))) { - //Printf(ref_cast, "(%s*)", SwigType_str(SwigType_base(type), 0)); - Printf(ref_cast, "*"); - } - Replaceall(action, "$mod", ref_cast); - Delete(ref_cast); - } + + // handle special cases of cpp return result + + String *mod = NewString("$mod"); + if (SwigType_isreference(type)) + Replaceall(mod, "$mod", ""); else if (SwigType_isenum(type)) - Replaceall(action, "$mod", "(int)"); - else if (return_object && Getattr(n, "c:retval")) { - Replaceall(action, "$mod", "&"); + Replaceall(mod, "$mod", "(int)"); + else if (return_object && Getattr(n, "c:retval")) + Replaceall(mod, "$mod", "&"); + else { + Delete(mod); + mod = empty_string; } - else - Replaceall(action, "$mod", ""); + Printf(stderr, "\n%s, %s, mod = %s\n", name, type, mod); + + Replaceall(action, "$mod", mod); + // emit output typemap if needed if (!is_void_return && (Cmp(Getattr(n, "c:objstruct"), "1") != 0)) { if ((tm = Swig_typemap_lookup_out("out", n, "cppresult", wrapper, action))) { @@ -854,6 +871,15 @@ * --------------------------------------------------------------------- */ virtual int staticmemberfunctionHandler(Node *n) { + SwigType *type = Getattr(n, "type"); + SwigType *tdtype; + tdtype = SwigType_typedef_resolve(type); + if (tdtype) + type = tdtype; + if (type) { + if (!SwigType_ispointer(type) && !SwigType_isreference(type)) + Setattr(n, "c:retval", "1"); + } return Language::staticmemberfunctionHandler(n); } @@ -863,8 +889,14 @@ virtual int memberfunctionHandler(Node *n) { SwigType *type = Getattr(n, "type"); - if (!SwigType_ispointer(type) && !SwigType_ispointer(SwigType_typedef_resolve(type))) - Setattr(n, "c:retval", "1"); + SwigType *tdtype; + tdtype = SwigType_typedef_resolve(type); + if (tdtype) + type = tdtype; + if (type) { + if (!SwigType_ispointer(type) && !SwigType_isreference(type)) + Setattr(n, "c:retval", "1"); + } return Language::memberfunctionHandler(n); } @@ -923,6 +955,7 @@ /* --------------------------------------------------------------------- * staticmembervariableHandler() + * TODO: refactor * --------------------------------------------------------------------- */ virtual int staticmembervariableHandler(Node *n) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ma...@us...> - 2008-08-17 13:42:24
|
Revision: 10771 http://swig.svn.sourceforge.net/swig/?rev=10771&view=rev Author: maciekd Date: 2008-08-17 13:42:19 +0000 (Sun, 17 Aug 2008) Log Message: ----------- 1. Fixed the bug in enums. Now 'enums' test is compiling OK. 2. -noexcept flag disables generating exception-related code (like array of type names in SwigObj, object registry, etc.). This can be used when we are sure we won't handle exceptions on the C side, and this will generate much less code. 3. Modified typemaps for object arrays. Multidimensional ones still needs some fixing. 4. Added 'enums' and 'cast_operator' runtime tests. Modified Paths: -------------- branches/gsoc2008-maciekd/Examples/c/exception/runme.c branches/gsoc2008-maciekd/Lib/c/c.swg branches/gsoc2008-maciekd/Source/Modules/c.cxx Added Paths: ----------- branches/gsoc2008-maciekd/Examples/test-suite/c/cast_operator_runme.c branches/gsoc2008-maciekd/Examples/test-suite/c/enums_runme.c branches/gsoc2008-maciekd/Lib/c/cexcept.swg Modified: branches/gsoc2008-maciekd/Examples/c/exception/runme.c =================================================================== --- branches/gsoc2008-maciekd/Examples/c/exception/runme.c 2008-08-16 17:50:06 UTC (rev 10770) +++ branches/gsoc2008-maciekd/Examples/c/exception/runme.c 2008-08-17 13:42:19 UTC (rev 10771) @@ -1,3 +1,7 @@ +/* + * NOTE: this won't run with -noexcept flag + */ + #include <stdio.h> #include "example_proxy.h" Added: branches/gsoc2008-maciekd/Examples/test-suite/c/cast_operator_runme.c =================================================================== --- branches/gsoc2008-maciekd/Examples/test-suite/c/cast_operator_runme.c (rev 0) +++ branches/gsoc2008-maciekd/Examples/test-suite/c/cast_operator_runme.c 2008-08-17 13:42:19 UTC (rev 10771) @@ -0,0 +1,12 @@ +#include <stdio.h> + +#include "cast_operator/cast_operator_proxy.h" + +int main() { + A *a = new_A(); + if (strcmp(A_tochar(a), "hi")) + fprintf(stderr, "cast failed\n"); + delete_A(a); + SWIG_exit(0); +} + Added: branches/gsoc2008-maciekd/Examples/test-suite/c/enums_runme.c =================================================================== --- branches/gsoc2008-maciekd/Examples/test-suite/c/enums_runme.c (rev 0) +++ branches/gsoc2008-maciekd/Examples/test-suite/c/enums_runme.c 2008-08-17 13:42:19 UTC (rev 10771) @@ -0,0 +1,11 @@ +#include <stdio.h> + +#include "enums/enums_proxy.h" + +int main() { + bar2(1); + bar3(1); + bar1(1); + SWIG_exit(0); +} + Modified: branches/gsoc2008-maciekd/Lib/c/c.swg =================================================================== --- branches/gsoc2008-maciekd/Lib/c/c.swg 2008-08-16 17:50:06 UTC (rev 10770) +++ branches/gsoc2008-maciekd/Lib/c/c.swg 2008-08-17 13:42:19 UTC (rev 10771) @@ -14,10 +14,7 @@ #include <string.h> #include <setjmp.h> -typedef struct { - void *obj; - const char **typenames; -} SwigObj; +#define SWIG_STR(x) #x %} // typemaps for function parameters @@ -36,10 +33,12 @@ %typemap(ctype) const void *, const short *, const int *, const long *, const char *, const float *, const double * "$1_type" %typemap(ctype) short [ANY], int [ANY], long [ANY], char [ANY], float [ANY], double [ANY] "$1_basetype *" %typemap(ctype) void * [ANY], short * [ANY], int * [ANY], long * [ANY], char * [ANY], float * [ANY], double * [ANY] "$1_basetype **" +%typemap(ctype) void [ANY][ANY], short [ANY][ANY], int [ANY][ANY], long [ANY][ANY], char [ANY][ANY], float [ANY][ANY], double [ANY][ANY] "$1_basetype **" %typemap(ctype) SWIGTYPE "SwigObj *" %typemap(ctype) SWIGTYPE * "SwigObj *" %typemap(ctype) SWIGTYPE & "SwigObj *" -%typemap(ctype) SWIGTYPE * [ANY] "SwigObj *" +%typemap(ctype) SWIGTYPE * [ANY], SWIGTYPE ** "SwigObj **" +%typemap(ctype) SWIGTYPE * [ANY][ANY], SWIGTYPE *** "SwigObj ***" %typemap(ctype) enum SWIGTYPE "$1_type" %fragment("stdbool_inc", "proxy_header") {#include <stdbool.h>} @@ -77,20 +76,42 @@ $1 = ($1_ltype) $input->obj; } -%typemap(in) SWIGTYPE * [ANY] { +%typemap(in) SWIGTYPE * [ANY], SWIGTYPE ** { if ($input) { - $1 = ($1_basetype *) malloc($1_dim0 * sizeof($1_basetype)); - int i; - for (i = 0; i < $1_dim0; ++i) + $1 = ($1_ltype) malloc($1_dim0 * sizeof($1_basetype)); + size_t i = 0; + for ( ; i < $1_dim0; ++i) if ($input[i]) - $1[i] = ($1_basetype) $input[i]->obj; + $1[i] = ($*1_ltype) $input[i]->obj; else - $1[i] = ($1_basetype) 0; + $1[i] = ($*1_ltype) 0; } else - $1 = ($1_basetype*) 0; + $1 = ($1_ltype) 0; } +%typemap(freearg) SWIGTYPE * [ANY], SWIGTYPE * [ANY][ANY], SWIGTYPE **, SWIGTYPE *** { + if (arg2) + free(arg2); +} + +%typemap(in) SWIGTYPE * [ANY][ANY], SWIGTYPE *** { + if ($input) { + $1 = ($1_ltype) malloc($1_dim0 * $1_dim1 * sizeof($1_basetype)); + size_t i = 0, j = 0; + for ( ; i < $1_dim0; ++i) { + for ( ; j < $1_dim1; ++j) { + if ($input[i][j]) + $1[i][j] = * ($*1_ltype) $input[i][j]->obj; + else + $1[i][j] = * ($*1_ltype) 0; + } + } + } + else + $1 = ($1_ltype) 0; +} + %typemap(in) SWIGTYPE & { if ($input) $1 = ($1_basetype *) $input->obj; @@ -110,6 +131,8 @@ %typemap(couttype) SWIGTYPE "SwigObj *" %typemap(couttype) SWIGTYPE * "SwigObj *" %typemap(couttype) SWIGTYPE & "SwigObj *" +%typemap(couttype) SWIGTYPE * [ANY], SWIGTYPE ** "SwigObj **" +%typemap(couttype) SWIGTYPE * [ANY][ANY], SWIGTYPE *** "SwigObj ***" %typemap(couttype) enum SWIGTYPE "$1_type" %typemap(couttype, fragment="stdbool_inc") bool, bool *, const bool, const bool * "$1_type" @@ -134,273 +157,84 @@ %typemap(out) enum SWIGTYPE "$result = ($1_type) $1;" -// allocate new "object-struct" by default - %typemap(out) SWIGTYPE { $result = SWIG_create_object(SWIG_STR($1_type)); $result->obj = (void*) &$1; } - %typemap(out) SWIGTYPE *, SWIGTYPE & { $result = SWIG_create_object(SWIG_STR($1_basetype)); $result->obj = (void*) $1; } -// exception handling - -%typemap(throws) BASIC_INT_TYPES { - char error_msg[256]; - sprintf(error_msg, "C++ $1_type exception thrown, value: %d", $1); - SWIG_CThrowException(0, error_msg); -} - -%apply BASIC_INT_TYPES { int, long, short, unsigned int, unsigned long, unsigned short, int &, long &, short &, unsigned int &, unsigned long &, unsigned short & }; - -%typemap(throws) char *, const char * { - SWIG_CThrowException(0, $1); -} - -// this should match only SwigObj objects -%typemap(throws) SWIGTYPE { - SwigObj *c_ex; - c_ex = SWIG_create_object(SWIG_STR($1_basetype)); - c_ex->obj = (void*) &$1; - SWIG_CThrowException(c_ex, "C++ $1_type exception thrown"); -} - -%typemap(throws) SWIGTYPE * { - SwigObj *c_ex; - c_ex = SWIG_create_object(SWIG_STR($1_basetype)); - c_ex->obj = (void*) $1; - SWIG_CThrowException(c_ex, "C++ $1_type exception thrown"); -} - -%insert("runtime") %{ -#define SWIG_STR(x) #x -#define SWIG_MAX_RT_STACK 256 -#define SWIG_REGISTRY_INIT 256 - -SWIGINTERN SwigObj **SWIG_registry_base = 0; -SWIGINTERN SwigObj **SWIG_registry = 0; -SWIGINTERN int SWIG_registry_size = SWIG_REGISTRY_INIT; - -SWIGINTERN SwigObj *SWIG_create_object(const char *classname); -SWIGINTERN void SWIG_destroy_object(SwigObj *object); - -SWIGEXPORTC struct SWIG_exc_struct { - int code; - char *msg; - SwigObj *klass; - int handled; -} SWIG_exc = { 0, 0, 0, 0 }; - -SWIGEXPORTC jmp_buf SWIG_rt_env; -SWIGEXPORTC int SWIG_rt_init = 0; -SWIGINTERN jmp_buf SWIG_cpp_back_env; -SWIGINTERN jmp_buf *SWIG_rt_stack_base = 0; -SWIGINTERN jmp_buf *SWIG_rt_stack_ptr = 0; - -SWIGINTERN void SWIG_rt_stack_push() { - // TODO: check for stack overflow - memcpy(SWIG_rt_stack_ptr, SWIG_rt_env, sizeof(SWIG_rt_env)); - SWIG_rt_stack_ptr++; -} - -SWIGINTERN void SWIG_rt_stack_pop() { - if (SWIG_rt_stack_ptr == SWIG_rt_stack_base) - return; - SWIG_rt_stack_ptr--; - memcpy(SWIG_rt_env, SWIG_rt_stack_ptr, sizeof(SWIG_rt_env)); -} - -SWIGINTERN void SWIG_add_registry_entry(SwigObj *entry) { - if (SWIG_registry_base == 0) { - SWIG_registry_base = SWIG_registry = (SwigObj **) malloc(SWIG_registry_size * sizeof(SwigObj *)); - memset(SWIG_registry_base, 0, SWIG_registry_size * sizeof(SwigObj *)); +%typemap(out) SWIGTYPE * [ANY], SWIGTYPE ** { + if ($1) { + $result = (SwigObj**) malloc($1_dim0 * sizeof(SwigObj*)); + size_t i = 0; + for ( ; i < $1_dim0; ++i) + if ($1[i]) { + $result[i] = SWIG_create_object(SWIG_STR($1_ltype)); + $result[i]->obj = (void*) $1[i]; + } + else + $result[i] = (SwigObj*) 0; } - *SWIG_registry = entry; - SWIG_registry++; - if ((SWIG_registry - SWIG_registry_base) == SWIG_registry_size) { - SWIG_registry = SWIG_registry_base; - SWIG_registry_size += SWIG_REGISTRY_INIT; - int new_size = SWIG_registry_size * sizeof(SwigObj *); - SWIG_registry_base = (SwigObj **) malloc(new_size); - memset(SWIG_registry_base, 0, new_size); - memcpy(SWIG_registry_base, SWIG_registry, (SWIG_registry_size - SWIG_REGISTRY_INIT) * sizeof(SwigObj *)); - free(SWIG_registry); - SWIG_registry = SWIG_registry_base + (SWIG_registry_size - SWIG_REGISTRY_INIT); - } + else + $result = (SwigObj**) 0; } -SWIGINTERN void SWIG_remove_registry_entry(SwigObj *entry) { - int i; - for (i = 0; i < SWIG_registry_size; ++i) { - if (*(SWIG_registry_base + i) == entry) { - *(SWIG_registry_base + i) = 0; - break; - } - } -} - -SWIGINTERN void SWIG_cleanup() { - if (SWIG_rt_stack_base) - free(SWIG_rt_stack_base); - if (SWIG_exc.msg) - free(SWIG_exc.msg); - if (SWIG_exc.klass) { - if (SWIG_exc.klass->typenames) - free(SWIG_exc.klass->typenames); - free(SWIG_exc.klass); - } - int i; - if (SWIG_registry_base) { - for (i = 0; i < SWIG_registry_size; ++i) { - if (*(SWIG_registry_base + i)) { - SWIG_destroy_object(*(SWIG_registry_base + i)); - *(SWIG_registry_base + i) = 0; +%typemap(out) SWIGTYPE * [ANY][ANY], SWIGTYPE *** { + if ($1) { + $result = (SwigObj***) malloc($1_dim0 * $1_dim1 * sizeof(SwigObj*)); + size_t i = 0, j = 0; + for ( ; i < $1_dim0; ++i) { + for ( ; j < $1_dim1; ++j) { + if ($1[i][j]) { + $result[i][j] = SWIG_create_object(SWIG_STR($1_ltype)); + $result[i][j]->obj = (void*) $1[i][j]; + } + else + $result[i][j] = (SwigObj*) 0; } } } - free(SWIG_registry_base); - SWIG_registry_base = 0; + else + $result = (SwigObj***) 0; } +#ifdef SWIG_C_EXCEPT +%insert("runtime") %{ +typedef struct { + void *obj; + const char **typenames; +} SwigObj; +%} +%include "cexcept.swg" +#else +%insert("runtime") %{ +typedef struct { + void *obj; +} SwigObj; + #ifdef __cplusplus extern "C" { #endif -SWIGEXPORTC void SWIG_rt_try() { - SWIG_rt_stack_push(); -} - -SWIGEXPORTC int SWIG_rt_catch(const char *type) { - int result = 0; - if (!type || (strcmp("SWIG_AnyException", type) == 0)) { - result = 1; - } - else if (SWIG_exc.klass) { - int i = 0; - while (SWIG_exc.klass->typenames[i]) { - if (strcmp(SWIG_exc.klass->typenames[i++], type) == 0) { - result = 1; - break; - } - } - } - if (result) { - SWIG_rt_stack_pop(); - SWIG_exc.handled = 1; - } - return result; -} - -SWIGEXPORTC void SWIG_rt_throw(SwigObj *klass, const char *msg) { - if (SWIG_exc.msg) { - free(SWIG_exc.msg); - SWIG_exc.msg = (char *) 0; - } - if (msg) { - SWIG_exc.msg = (char *) malloc(strlen(msg) + 1); - strcpy(SWIG_exc.msg, msg); - } - SWIG_exc.klass = klass; - SWIG_exc.handled = 0; - longjmp(SWIG_rt_env, 1); -} - -SWIGEXPORTC void SWIG_rt_unhandled() { - if (SWIG_exc.msg) { - free(SWIG_exc.msg); - SWIG_exc.msg = 0; - } - SWIG_rt_stack_pop(); - longjmp(SWIG_rt_env, SWIG_exc.code); -} - -SWIGEXPORTC void SWIG_rt_endtry() { - if (SWIG_exc.handled) { - if (setjmp(SWIG_rt_env) == 0) { - SWIG_rt_stack_push(); - longjmp(SWIG_cpp_back_env, 1); - } - } - else { - SWIG_rt_stack_pop(); // pop the SWIG_try context - } -} - SWIGEXPORTC int SWIG_exit(int code) { - SWIG_cleanup(); exit(code); } #ifdef __cplusplus } #endif - -SWIGINTERN void SWIG_terminate() { - fprintf(stderr, "Unhandled exception: %s\n%s\nExitting...\n", - SWIG_exc.klass->typenames[0], - SWIG_exc.msg ? SWIG_exc.msg : ""); - SWIG_exit(SWIG_exc.code); -} - -SWIGINTERN void SWIG_Runtime_init() { - int i, code; - if (!SWIG_rt_init) { - SWIG_rt_init = 1; - SWIG_rt_stack_base = SWIG_rt_stack_ptr = (jmp_buf *) malloc(sizeof(jmp_buf) * SWIG_MAX_RT_STACK); - if (SWIG_exc.code = setjmp(SWIG_rt_env)) { - // deallocate C++ exception - if (setjmp(SWIG_rt_env) == 0) { - SWIG_rt_stack_push(); - SWIG_exc.handled = 1; - longjmp(SWIG_cpp_back_env, 1); - } - SWIG_terminate(); - } - } -} - -#define SWIG_CThrowException(klass, msg) \ - if (setjmp(SWIG_cpp_back_env) == 0) \ - SWIG_rt_throw((SwigObj *) klass, msg); - %} %insert("proxy_header") %{ -// special value indicating any type of exception like 'catch(...)' -#define SWIG_AnyException "SWIG_AnyException" - -#include <setjmp.h> - -SWIGIMPORT jmp_buf SWIG_rt_env; - typedef struct { void *obj; const char **typenames; } SwigObj; - -SWIGIMPORT struct SWIG_exc_struct { - int code; - char *msg; - SwigObj *klass; -} SWIG_exc; - -SWIGIMPORT void SWIG_rt_try(); -SWIGIMPORT int SWIG_rt_catch(const char *type); -SWIGIMPORT void SWIG_rt_throw(SwigObj *klass, const char * msg); -SWIGIMPORT int SWIG_rt_unhandled(); -SWIGIMPORT void SWIG_rt_endtry(); -SWIGIMPORT int SWIG_exit(int code); - -#define SWIG_try \ - SWIG_rt_try(); \ - if ((SWIG_exc.code = setjmp(SWIG_rt_env)) == 0) -#define SWIG_catch(type) else if (SWIG_rt_catch(#type)) -#define SWIG_throw(klass) SWIG_rt_throw((SwigObj *) klass, 0); -#define SWIG_throw_msg(klass, msg) SWIG_rt_throw((SwigObj *) klass, msg); -#define SWIG_endtry else SWIG_rt_unhandled(); SWIG_rt_endtry(); %} +#endif + Added: branches/gsoc2008-maciekd/Lib/c/cexcept.swg =================================================================== --- branches/gsoc2008-maciekd/Lib/c/cexcept.swg (rev 0) +++ branches/gsoc2008-maciekd/Lib/c/cexcept.swg 2008-08-17 13:42:19 UTC (rev 10771) @@ -0,0 +1,260 @@ +/* ----------------------------------------------------------------------------- + * clabels.swg + * + * Exception handling code and typemaps for C module. + * ----------------------------------------------------------------------------- */ + +%typemap(throws) BASIC_INT_TYPES { + char error_msg[256]; + sprintf(error_msg, "C++ $1_type exception thrown, value: %d", $1); + SWIG_CThrowException(0, error_msg); +} + +%apply BASIC_INT_TYPES { int, long, short, unsigned int, unsigned long, unsigned short, int &, long &, short &, unsigned int &, unsigned long &, unsigned short & }; + +%typemap(throws) char *, const char * { + SWIG_CThrowException(0, $1); +} + +// this should match only SwigObj objects +%typemap(throws) SWIGTYPE { + SwigObj *c_ex; + c_ex = SWIG_create_object(SWIG_STR($1_basetype)); + c_ex->obj = (void*) &$1; + SWIG_CThrowException(c_ex, "C++ $1_type exception thrown"); +} + +%typemap(throws) SWIGTYPE * { + SwigObj *c_ex; + c_ex = SWIG_create_object(SWIG_STR($1_basetype)); + c_ex->obj = (void*) $1; + SWIG_CThrowException(c_ex, "C++ $1_type exception thrown"); +} + +%insert("runtime") %{ +#define SWIG_MAX_RT_STACK 256 +#define SWIG_REGISTRY_INIT 256 + +SWIGINTERN SwigObj **SWIG_registry_base = 0; +SWIGINTERN SwigObj **SWIG_registry = 0; +SWIGINTERN int SWIG_registry_size = SWIG_REGISTRY_INIT; + +SWIGINTERN SwigObj *SWIG_create_object(const char *classname); +SWIGINTERN void SWIG_destroy_object(SwigObj *object); + +SWIGEXPORTC struct SWIG_exc_struct { + int code; + char *msg; + SwigObj *klass; + int handled; +} SWIG_exc = { 0, 0, 0, 0 }; + +SWIGEXPORTC jmp_buf SWIG_rt_env; +SWIGEXPORTC int SWIG_rt_init = 0; +SWIGINTERN jmp_buf SWIG_cpp_back_env; +SWIGINTERN jmp_buf *SWIG_rt_stack_base = 0; +SWIGINTERN jmp_buf *SWIG_rt_stack_ptr = 0; + +SWIGINTERN void SWIG_rt_stack_push() { + // TODO: check for stack overflow + memcpy(SWIG_rt_stack_ptr, SWIG_rt_env, sizeof(SWIG_rt_env)); + SWIG_rt_stack_ptr++; +} + +SWIGINTERN void SWIG_rt_stack_pop() { + if (SWIG_rt_stack_ptr == SWIG_rt_stack_base) + return; + SWIG_rt_stack_ptr--; + memcpy(SWIG_rt_env, SWIG_rt_stack_ptr, sizeof(SWIG_rt_env)); +} + +SWIGINTERN void SWIG_add_registry_entry(SwigObj *entry) { + if (SWIG_registry_base == 0) { + SWIG_registry_base = SWIG_registry = (SwigObj **) malloc(SWIG_registry_size * sizeof(SwigObj *)); + memset(SWIG_registry_base, 0, SWIG_registry_size * sizeof(SwigObj *)); + } + *SWIG_registry = entry; + SWIG_registry++; + if ((SWIG_registry - SWIG_registry_base) == SWIG_registry_size) { + SWIG_registry = SWIG_registry_base; + SWIG_registry_size += SWIG_REGISTRY_INIT; + int new_size = SWIG_registry_size * sizeof(SwigObj *); + SWIG_registry_base = (SwigObj **) malloc(new_size); + memset(SWIG_registry_base, 0, new_size); + memcpy(SWIG_registry_base, SWIG_registry, (SWIG_registry_size - SWIG_REGISTRY_INIT) * sizeof(SwigObj *)); + free(SWIG_registry); + SWIG_registry = SWIG_registry_base + (SWIG_registry_size - SWIG_REGISTRY_INIT); + } +} + +SWIGINTERN void SWIG_remove_registry_entry(SwigObj *entry) { + int i; + for (i = 0; i < SWIG_registry_size; ++i) { + if (*(SWIG_registry_base + i) == entry) { + *(SWIG_registry_base + i) = 0; + break; + } + } +} + +SWIGINTERN void SWIG_cleanup() { + if (SWIG_rt_stack_base) + free(SWIG_rt_stack_base); + if (SWIG_exc.msg) + free(SWIG_exc.msg); + if (SWIG_exc.klass) { + if (SWIG_exc.klass->typenames) + free(SWIG_exc.klass->typenames); + free(SWIG_exc.klass); + } + int i; + if (SWIG_registry_base) { + for (i = 0; i < SWIG_registry_size; ++i) { + if (*(SWIG_registry_base + i)) { + SWIG_destroy_object(*(SWIG_registry_base + i)); + *(SWIG_registry_base + i) = 0; + } + } + } + free(SWIG_registry_base); + SWIG_registry_base = 0; +} + +#ifdef __cplusplus +extern "C" { +#endif + +SWIGEXPORTC void SWIG_rt_try() { + SWIG_rt_stack_push(); +} + +SWIGEXPORTC int SWIG_rt_catch(const char *type) { + int result = 0; + if (!type || (strcmp("SWIG_AnyException", type) == 0)) { + result = 1; + } + else if (SWIG_exc.klass) { + int i = 0; + while (SWIG_exc.klass->typenames[i]) { + if (strcmp(SWIG_exc.klass->typenames[i++], type) == 0) { + result = 1; + break; + } + } + } + if (result) { + SWIG_rt_stack_pop(); + SWIG_exc.handled = 1; + } + return result; +} + +SWIGEXPORTC void SWIG_rt_throw(SwigObj *klass, const char *msg) { + if (SWIG_exc.msg) { + free(SWIG_exc.msg); + SWIG_exc.msg = (char *) 0; + } + if (msg) { + SWIG_exc.msg = (char *) malloc(strlen(msg) + 1); + strcpy(SWIG_exc.msg, msg); + } + SWIG_exc.klass = klass; + SWIG_exc.handled = 0; + longjmp(SWIG_rt_env, 1); +} + +SWIGEXPORTC void SWIG_rt_unhandled() { + if (SWIG_exc.msg) { + free(SWIG_exc.msg); + SWIG_exc.msg = 0; + } + SWIG_rt_stack_pop(); + longjmp(SWIG_rt_env, SWIG_exc.code); +} + +SWIGEXPORTC void SWIG_rt_endtry() { + if (SWIG_exc.handled) { + if (setjmp(SWIG_rt_env) == 0) { + SWIG_rt_stack_push(); + longjmp(SWIG_cpp_back_env, 1); + } + } + else { + SWIG_rt_stack_pop(); // pop the SWIG_try context + } +} + +SWIGEXPORTC int SWIG_exit(int code) { + SWIG_cleanup(); + exit(code); +} + +#ifdef __cplusplus +} +#endif + +SWIGINTERN void SWIG_terminate() { + fprintf(stderr, "Unhandled exception: %s\n%s\nExitting...\n", + SWIG_exc.klass->typenames[0], + SWIG_exc.msg ? SWIG_exc.msg : ""); + SWIG_exit(SWIG_exc.code); +} + +SWIGINTERN void SWIG_runtime_init() { + int i, code; + if (!SWIG_rt_init) { + SWIG_rt_init = 1; + SWIG_rt_stack_base = SWIG_rt_stack_ptr = (jmp_buf *) malloc(sizeof(jmp_buf) * SWIG_MAX_RT_STACK); + if (SWIG_exc.code = setjmp(SWIG_rt_env)) { + // deallocate C++ exception + if (setjmp(SWIG_rt_env) == 0) { + SWIG_rt_stack_push(); + SWIG_exc.handled = 1; + longjmp(SWIG_cpp_back_env, 1); + } + SWIG_terminate(); + } + } +} + +#define SWIG_CThrowException(klass, msg) \ + if (setjmp(SWIG_cpp_back_env) == 0) \ + SWIG_rt_throw((SwigObj *) klass, msg); +%} + +%insert("proxy_header") %{ +// special value indicating any type of exception like 'catch(...)' +#define SWIG_AnyException "SWIG_AnyException" + +#include <setjmp.h> + +SWIGIMPORT jmp_buf SWIG_rt_env; + +typedef struct { + void *obj; + const char **typenames; +} SwigObj; + +SWIGIMPORT struct SWIG_exc_struct { + int code; + char *msg; + SwigObj *klass; +} SWIG_exc; + +SWIGIMPORT void SWIG_rt_try(); +SWIGIMPORT int SWIG_rt_catch(const char *type); +SWIGIMPORT void SWIG_rt_throw(SwigObj *klass, const char * msg); +SWIGIMPORT int SWIG_rt_unhandled(); +SWIGIMPORT void SWIG_rt_endtry(); +SWIGIMPORT int SWIG_exit(int code); + +#define SWIG_try \ + SWIG_rt_try(); \ + if ((SWIG_exc.code = setjmp(SWIG_rt_env)) == 0) +#define SWIG_catch(type) else if (SWIG_rt_catch(#type)) +#define SWIG_throw(klass) SWIG_rt_throw((SwigObj *) klass, 0); +#define SWIG_throw_msg(klass, msg) SWIG_rt_throw((SwigObj *) klass, msg); +#define SWIG_endtry else SWIG_rt_unhandled(); SWIG_rt_endtry(); + +%} + Modified: branches/gsoc2008-maciekd/Source/Modules/c.cxx =================================================================== --- branches/gsoc2008-maciekd/Source/Modules/c.cxx 2008-08-16 17:50:06 UTC (rev 10770) +++ branches/gsoc2008-maciekd/Source/Modules/c.cxx 2008-08-17 13:42:19 UTC (rev 10771) @@ -32,8 +32,10 @@ String *create_object; String *destroy_object; + int enum_id; + bool proxy_flag; - bool runtime_flag; + bool except_flag; public: @@ -47,8 +49,9 @@ enum_values(0), create_object(0), destroy_object(0), + enum_id(1), proxy_flag(true), - runtime_flag(true) { + except_flag(true) { } /* ------------------------------------------------------------ @@ -57,17 +60,6 @@ virtual void main(int argc, char *argv[]) { - SWIG_library_directory("c"); - - // add a symbol to the parser for conditional compilation - Preprocessor_define("SWIGC 1", 0); - if (runtime_flag) - Preprocessor_define("SWIG_C_RUNTIME 1", 0); - - // add typemap definitions - SWIG_typemap_lang("c"); - SWIG_config_file("c.swg"); - // look for certain command line options for (int i = 1; i < argc; i++) { if (argv[i]) { @@ -79,16 +71,25 @@ } else if (strcmp(argv[i], "-noproxy") == 0) { proxy_flag = false; Swig_mark_arg(i); - } else if (strcmp(argv[i], "-noruntime") == 0) { - runtime_flag = false; + } else if (strcmp(argv[i], "-noexcept") == 0) { + except_flag = false; Swig_mark_arg(i); } } } - if (!CPlusPlus) - runtime_flag = false; + // add a symbol to the parser for conditional compilation + Preprocessor_define("SWIGC 1", 0); + Preprocessor_define("SWIG_C_RUNTME 1", 0); + if (except_flag) + Preprocessor_define("SWIG_C_EXCEPT 1", 0); + SWIG_library_directory("c"); + + // add typemap definitions + SWIG_typemap_lang("c"); + SWIG_config_file("c.swg"); + allow_overloading(); } @@ -98,8 +99,9 @@ void start_create_object() { String *s = create_object = NewString(""); - Printf(s, "\nSWIGINTERN SwigObj *SWIG_create_object(const char *classname) {\n"); - Printf(s, "SWIG_Runtime_init();\n"); + Printv(s, "\nSWIGINTERN SwigObj *SWIG_create_object(", except_flag ? "const char *classname" : "", ") {\n", NIL); + if (except_flag) + Printf(s, "SWIG_runtime_init();\n"); Printf(s, "SwigObj *result;\n"); Printf(s, "result = (SwigObj *) malloc(sizeof(SwigObj));\n"); Printf(s, "result->obj = 0;\n"); @@ -123,7 +125,9 @@ void start_destroy_object() { String *s = destroy_object = NewString(""); Printf(s, "\nSWIGINTERN void SWIG_destroy_object(SwigObj *object) {\n"); - Printf(s, "if (object)\nif (object->typenames) {\n"); + Printf(s, "if (object) {\n"); + if (except_flag) + Printf(s, "if (object->typenames) {\n"); } /* --------------------------------------------------------------------- @@ -132,9 +136,12 @@ String *finish_destroy_object() { String *s = destroy_object; - Printf(s, "free(object->typenames);\n"); + if (except_flag) + Printf(s, "free(object->typenames);\n"); Printf(s, "free(object);\n"); Printf(s, "object = (SwigObj *) 0;\n"); + if (except_flag) + Printf(s, "}\n"); Printf(s, "}\n}\n"); return destroy_object; } @@ -198,13 +205,15 @@ Printf(f_wrappers, "#endif\n\n"); start_create_object(); - start_destroy_object(); + if (except_flag) + start_destroy_object(); // emit code for children Language::top(n); Append(f_header, finish_create_object()); - Append(f_header, finish_destroy_object()); + if (except_flag) + Append(f_header, finish_destroy_object()); Printf(f_wrappers, "#ifdef __cplusplus\n"); Printf(f_wrappers, "}\n"); @@ -245,6 +254,8 @@ return SWIG_OK; String *name = Getattr(n, "name"); SwigType *type = Getattr(n, "type"); + if (SwigType_isenum(type)) + type = make_enum_type(n, type); String *type_str = SwigType_str(type, 0); Printv(f_proxy_header, "SWIGIMPORT ", type_str, " ", name, ";\n\n", NIL); return SWIG_OK; @@ -391,6 +402,8 @@ Node *node = Swig_symbol_clookup(query, symtab); if (node) newtype = NewStringf("enum %s", Getattr(node, "name")); + else + newtype = SwigType_str(enumtype, 0); return newtype; } @@ -511,10 +524,10 @@ Wrapper_add_localv(wrapper, "cppresult", "int", "cppresult", NIL); } else if (SwigType_isbuiltin(SwigType_base(type))) { + // type is built-in (int, char, double, etc.) if (SwigType_isconst(type)) SwigType_del_qualifier(type); - // type is built-in (int, char, double, etc.) if (SwigType_isreference(type)) { if (SwigType_isconst(SwigType_del_reference(type))) { return_var_type = SwigType_base(type); @@ -529,7 +542,12 @@ } else if (SwigType_isarray(type)) { return_var_type = SwigType_base(type); - SwigType_add_pointer(return_var_type); + SwigType *atype = Copy(type); + do { + SwigType_del_array(atype); + SwigType_add_pointer(return_var_type); + } while (SwigType_isarray(atype)); + Delete(atype); } else { return_var_type = type; @@ -541,10 +559,21 @@ // type is class if (SwigType_ispointer(type)) return_var_type = type; - else if (SwigType_isreference(type) || SwigType_isarray(type)) { + else if (SwigType_isreference(type)) { return_var_type = SwigType_base(type); SwigType_add_pointer(return_var_type); } + else if (SwigType_isarray(type)) { + return_var_type = SwigType_base(type); + SwigType *atype = Copy(type); + do { + SwigType_del_array(atype); + SwigType_add_pointer(return_var_type); + } while (SwigType_isarray(atype)); + Delete(atype); + if (Cmp(Getattr(n, "c:retval"), "1")) + SwigType_add_pointer(return_var_type); + } else { return_var_type = type; SwigType_add_pointer(return_var_type); @@ -639,6 +668,7 @@ Swig_warning(WARN_TYPEMAP_IN_UNDEF, input_file, line_number, "Unable to use type %s as a function argument.\n", SwigType_str(type, 0)); p = nextSibling(p); } + Delete(arg_name); Delete(proxy_parm_type); Delete(c_parm_type); @@ -669,7 +699,7 @@ Replaceall(mod, "$mod", ""); else if (SwigType_isenum(type)) Replaceall(mod, "$mod", "(int)"); - else if (return_object && Getattr(n, "c:retval")) + else if (return_object && Getattr(n, "c:retval") && !SwigType_isarray(type)) Replaceall(mod, "$mod", "&"); else { Delete(mod); @@ -832,7 +862,8 @@ } } - Printv(f_header, "const char* Swig_typename_", name, " = \"", name, "\";\n\n", NIL); + if (except_flag) + Printv(f_header, "const char* Swig_typename_", name, " = \"", name, "\";\n\n", NIL); // declare type for specific class in the proxy header if (proxy_flag) @@ -1006,6 +1037,26 @@ * --------------------------------------------------------------------- */ virtual int membervariableHandler(Node *n) { + SwigType *type = Copy(Getattr(n, "type")); + SwigType *tdtype; + tdtype = SwigType_typedef_resolve(type); + if (tdtype) + type = tdtype; + + int array_count = 0; + while (SwigType_isarray(type)) { + SwigType_del_array(type); + array_count++; + } + if (type) { + if (!SwigType_ispointer(type) && !SwigType_isreference(type)) + Setattr(n, "c:retval", "1"); + } + while (array_count) { + SwigType_add_pointer(type); + array_count--; + } + Delete(type); return Language::membervariableHandler(n); } @@ -1078,10 +1129,16 @@ Setattr(n, "sym:name", constr_name); // generate action code - add_to_create_object(n, classname, newclassname); - Printv(code, "result = SWIG_create_object(\"", classname, "\");\n", NIL); + if (except_flag) { + add_to_create_object(n, classname, newclassname); + Printv(code, "result = SWIG_create_object(\"", classname, "\");\n", NIL); + Printf(code, "SWIG_add_registry_entry(result);\n"); + } + else { + Printf(code, "result = SWIG_create_object();\n"); + } + Printv(code, "result->obj = (void*) new ", classname, arg_lnames, ";\n", NIL); - Printf(code, "SWIG_add_registry_entry(result);\n"); Setattr(n, "wrap:action", code); @@ -1129,10 +1186,17 @@ Setattr(n, "sym:name", constr_name); // generate action code - add_to_create_object(n, classname, newclassname); - Printv(code, "result = SWIG_create_object(\"", classname, "\");\n", NIL); - Printv(code, "result->obj = (void*) new ", classname, "((", classname, " const &)*arg1);\n", NIL); - + if (except_flag) { + add_to_create_object(n, classname, newclassname); + Printv(code, "result = SWIG_create_object(\"", classname, "\");\n", NIL); + Printf(code, "SWIG_add_registry_entry(result);\n"); + } + else { + Printf(code, "result = SWIG_create_object();\n"); + } + + Printv(code, "result->obj = (void*) new ", classname, "((", classname, " const &)*arg1);\n", NIL); + Setattr(n, "wrap:action", code); functionWrapper(n); @@ -1150,7 +1214,9 @@ * --------------------------------------------------------------------- */ virtual int destructorHandler(Node *n) { - String *newclassname = Getattr(Swig_methodclass(n), "sym:name"); + Node *klass = Swig_methodclass(n); + String *classname = Getattr(klass, "classtype"); + String *newclassname = Getattr(klass, "sym:name"); String *sobj_name = NewString(""); String *ctype; String *stype; @@ -1176,8 +1242,14 @@ Setattr(n, "sym:name", destr_name); // create action code - Printf(code, "SWIG_remove_registry_entry(carg1);\n"); - Printf(code, "SWIG_destroy_object(arg1);\n"); + if (except_flag) { + Printf(code, "SWIG_remove_registry_entry(carg1);\n"); + Printf(code, "SWIG_destroy_object(arg1);\n"); + } + else { + Printv(code, "if (carg1->obj)\ndelete (", classname, " *) (carg1->obj);\n", NIL); + } + Setattr(n, "wrap:action", code); functionWrapper(n); @@ -1201,20 +1273,32 @@ virtual int enumDeclaration(Node *n) { if (!proxy_flag) return SWIG_OK; - if (Cmp(Getattr(n, "access"), "public") != 0) - return SWIG_OK; String *newclassname = Getattr(Swig_methodclass(n), "sym:name"); String *name = Getattr(n, "sym:name"); String *code = NewString(""); String *tdname = Getattr(n, "tdname"); - String *newname = newclassname ? NewStringf("%s_", newclassname) : Copy(name); - Symtab *symtab = Getattr(n, "sym:symtab"); - if (tdname) + if (tdname) { Printf(code, "typedef "); + name = Getattr(n, "name"); + String *td_def_name = NewStringf("enum %s", name); + SwigType_typedef(td_def_name, name); + Delete(td_def_name); + SwigType_istypedef(name); + } + Symtab *symtab = Getattr(n, "sym:symtab"); + String *newname = newclassname ? NewStringf("%s_", newclassname) : Copy(name); + Printf(code, "enum "); + if (!name) { + String *anonymous_name = NewStringf("enum%d ", enum_id++); + Setattr(n, "sym:name", anonymous_name); + Setattr(n, "unnamed", "1"); + name = Getattr(n, "sym:name"); + Delete(anonymous_name); + } if (Delattr(n, "unnamed")) { // unnamed enum declaration: create new symbol Replaceall(name, "$unnamed", "enum"); @@ -1226,16 +1310,22 @@ Setattr(entry, "sym:name", name); Setattr(entry, "sym:symtab", symtab); Swig_symbol_add(name, entry); - } + } if (newclassname) { if (symtab) { Node *node = Swig_symbol_clookup(name, symtab); - if (node) { + if (node) Append(newname, name); - Setattr(node, "name", newname); - } } + else + Append(newname, "enum"); + + Setattr(n, "name", newname); } + else { + Delete(newname); + newname = name; + } Printv(code, newname ? newname : "", " {\n$enumvalues\n} ", tdname ? tdname : "", ";\n\n", NIL); emit_children(n); @@ -1259,8 +1349,6 @@ virtual int enumvalueDeclaration(Node *n) { String *name = Getattr(n, "sym:name"); - if (Cmp(Getattr(n, "access"), "public") != 0) - return SWIG_OK; String *enumvalue = Getattr(n, "enumvalue"); String *init = 0; if (enumvalue) { @@ -1303,9 +1391,10 @@ if (strncmp(c, "enum", 4) != 0) { if (name && type) { - String *code = NewStringf("typedef %s %s;\n\n", type, name); + String *code = NewStringf("typedef %s %s;\n\n", name, type); Append(f_proxy_header, code); Delete(code); + SwigType_typedef(type, name); } } return SWIG_OK; @@ -1345,6 +1434,6 @@ const char *C::usage = (char *) "\ C Options (available with -c)\n\ -noproxy - do not generate proxy interface\n\ - -noruntime - disable runtime error checking\n\ + -noexcept - do not generate exception handling code\n\ \n"; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ma...@us...> - 2008-08-24 12:39:34
|
Revision: 10796 http://swig.svn.sourceforge.net/swig/?rev=10796&view=rev Author: maciekd Date: 2008-08-24 12:39:30 +0000 (Sun, 24 Aug 2008) Log Message: ----------- 1. char_strings runtime test 2. next chapters of HTML doc 3. minor bugfixes Modified Paths: -------------- branches/gsoc2008-maciekd/Doc/Manual/C.html branches/gsoc2008-maciekd/Examples/test-suite/c/Makefile.in branches/gsoc2008-maciekd/Lib/c/c.swg branches/gsoc2008-maciekd/Source/Modules/c.cxx Added Paths: ----------- branches/gsoc2008-maciekd/Examples/test-suite/c/char_strings_runme.c Modified: branches/gsoc2008-maciekd/Doc/Manual/C.html =================================================================== --- branches/gsoc2008-maciekd/Doc/Manual/C.html 2008-08-19 07:43:48 UTC (rev 10795) +++ branches/gsoc2008-maciekd/Doc/Manual/C.html 2008-08-24 12:39:30 UTC (rev 10796) @@ -54,7 +54,7 @@ </p> <p> -Flattening C++ language constructs into a set of C-style functions obviously comes with many limitations and inconveniences. All data and functions becomes global. Manipulating objects requires explicit calls to special functions. We are losing the high level abstraction and have to work around it. +Flattening C++ language constructs into a set of C-style functions obviously comes with many limitations and inconveniences. All data and functions become global. Manipulating objects requires explicit calls to special functions. We are losing the high level abstraction and have to work around it. </p> <H2><a name="c_preliminaries"></a>36.2 Preliminaries</H2> @@ -132,7 +132,9 @@ <H3><a name="c_dynamic"></a>36.2.3 Compiling dynamic module</H3> +<p> The next step is to build dynamically loadable module, which we can link to our application. This can be done easily, for example using <tt>gcc</tt> compiler (Linux, MINGW, etc.): +</p> <div class="code"><pre> $ swig -c example.i @@ -172,18 +174,207 @@ <H2><a name="c_basic_c_wrapping"></a>36.3 Basic C wrapping</H2> +<p> +Wrapping C functions and variables is obviously performed in straightforward way. There is no need to perform type conversions, and all language constructs can be preserved in their original form. However, SWIG allows you to enchance the code with some additional elements, for instance using <tt>check</tt> typemap or <tt>%extend</tt> directive. +</p> + <H3><a name="c_c_functions"></a>36.3.1 Functions</H3> +<p> +For each C function declared in the interface file a wrapper function is created. Basically, the wrapper function performs a call to the original function, and returns its result. +</p> + +<p> +For example, for function declaration: +</p> + +<div class="code"><pre> +int gcd(int x, int y); +</pre></div> + +<p> +The output is simply: +</p> + +<div class="code"><pre> +int _wrap_gcd(int arg1, int arg2) { + int result; + result = gcd(arg1,arg2); + return result; +} +</pre></div> + +<p> +Then again, this wrapper function is usually called from C using helper function declared in proxy file, preserving the original name: +</p> + +<div class="code"><pre> +int gcd(int arg1, int arg2) { + return _wrap_gcd(arg1,arg2); +} +</pre></div> + +<p> +Now one might think, what's the use of creating such functions in C? The answer is, you can apply special rules to the generated code. Take for example constraint checking. You can write a "check" typemap in your interface file: +</p> + +<div class="code"><pre> +%typemap(check) int POSITIVE { + if ($1 <= 0) + fprintf(stderr, "Expected positive value in $name.\n"); +} + +int gcd(int POSITIVE, int POSITIVE); +</pre></div> + +<p> +And now the generated result looks like: +</p> + +<div class="code"><pre> +int _wrap_gcd(int arg1, int arg2) { + { + if (arg1 <= 0) + fprintf(stderr, "Expected positive value in gcd.\n"); + } + { + if (arg1 <= 0) + fprintf(stderr, "Expected positive value in gcd.\n"); + } + int result; + result = gcd(arg1,arg2); + return result; +} +</pre></div> + +<p> +This time calling <tt>gcd</tt> with negative value argument will trigger an error message. This can save you time writing all the constraint checking code by hand. +</p> + <H3><a name="c_c_variables"></a>36.3.2 Variables</H3> +<p> +Wrapping variables comes also without any special issues. All global variables are directly accessible from application code. There is a difference in the semantics of <tt>struct</tt> definition in C and C++. When handling C <tt>struct</tt>, SWIG simply rewrites its declaration. In C++ <tt>struct</tt> is handled as class declaration. +</p> + +<p> +You can still apply some of the SWIG features when handling structs, e.g. <tt>%extend</tt> directive. Suppose, you have a C struct declaration: +</p> + +<div class="code"><pre> +typedef struct { + int x; + char *str; +} my_struct; +</pre></div> + +<p> +You can redefine it to have an additional fields, like: +</p> + +<div class="code"><pre> +%extend my_struct { + double d; +}; +</pre></div> + +<p> +In application code: +</p> + +<div class="targetlang"><pre> +struct my_struct ms; +ms.x = 123; +ms.d = 123.123; +</pre></div> + <H2><a name="c_basic_cpp_wrapping"></a>36.4 Basic C++ wrapping</H2> +<p> +The main reason of having the C module in SWIG is to be able to access C++ from C. In this chapter we will take a look at the rules of wrapping elements of C++ language. +</p> + <H3><a name="c_classes"></a>36.4.1 Classes</H3> +<p> +Consider the following example. We have a C++ class, and want to refer to it in C. +</p> + +<div class="code"><pre> +class Circle { +public: + double radius; + + Circle(double r) : radius(r) { }; + double area(void); +}; +</pre></div> + +<p> +What we need to do is to create an object of the class, then to be able to manipulate on it, and finally, to be able to destroy it. SWIG generates C functions for this purpose each time a class declaration is encountered in the interface file. +</p> + +<p> +The first two generated functions are used to create and destroy instances of class <tt>Circle</tt>. Such an instances are represented on the C side as pointers to special structs, called <tt>SwigObj</tt>. They are all "renamed" (via typedef) to the original class names, so that you can refer to the object instances on the C side using pointers like: +</p> + +<div class="targetlang"><pre> +Circle *circle; +</pre></div> + +<p> +The generated functions make calls to class' constructors and destructors, respectively. They also do all the necessary things required by the SWIG object management system in C. +</p> + +<div class="code"><pre> +Circle * new_Circle(double r); +void delete_Circle(Circle * self); +</pre></div> + +<p> +The class <tt>Circle</tt> has a public variable called <tt>radius</tt>. SWIG generates a pair of setters and getters for each such variable: +</p> + +<div class="code"><pre> +void Circle_radius_set(Circle * self, double radius); +double Circle_radius_get(Circle * self); +</pre></div> + +<p> +For each public method, an appropriate function is generated: +</p> + +<div class="code"><pre> +double Circle_area(Circle * self); +</pre></div> + +<p> +You can see that in order to refer to the generated object we need to provide a pointer to the object instance (struct <tt>Circle</tt> in this case) as the first function argument. In fact, this struct is basically wrapping pointer to the "real" C++ object. +</p> + +<p> +Our application code could look like this: +</p> + +<div class="targetlang"><pre> + Circle *c = new_Circle(1.5); + printf("radius: %f\narea: %f\n", Circle_radius_get(c), Circle_area(c)); + delete_Circle(c); +</pre></div> + +<p> +After running this we'll get: +</p> + +<div class="shell"><pre> +radius: 1.500000 +area: 7.068583 +</pre></div> + <H2><a name="c_exceptions"></a>36.5 Exception handling</H2> Modified: branches/gsoc2008-maciekd/Examples/test-suite/c/Makefile.in =================================================================== --- branches/gsoc2008-maciekd/Examples/test-suite/c/Makefile.in 2008-08-19 07:43:48 UTC (rev 10795) +++ branches/gsoc2008-maciekd/Examples/test-suite/c/Makefile.in 2008-08-24 12:39:30 UTC (rev 10796) @@ -13,10 +13,12 @@ C_TEST_CASES = CPP_TEST_CASES = \ - exception_order \ - exception_partial_info \ - enums \ - enum_plus \ + cast_operator \ + char_strings \ + exception_order \ + exception_partial_info \ + enums \ + enum_plus \ include $(srcdir)/../common.mk Added: branches/gsoc2008-maciekd/Examples/test-suite/c/char_strings_runme.c =================================================================== --- branches/gsoc2008-maciekd/Examples/test-suite/c/char_strings_runme.c (rev 0) +++ branches/gsoc2008-maciekd/Examples/test-suite/c/char_strings_runme.c 2008-08-24 12:39:30 UTC (rev 10796) @@ -0,0 +1,198 @@ +#include <stdio.h> + +#include "char_strings/char_strings_proxy.h" + +int main() { + char *CPLUSPLUS_MSG = "A message from the deep dark world of C++, where anything is possible."; + char *OTHERLAND_MSG = "Little message from the safe world."; + + long count = 10000; + long i = 0; + + // get functions + for (i=0; i<count; i++) { + char *str = GetCharHeapString(); + if (strcmp(str, CPLUSPLUS_MSG) != 0) { + fprintf(stderr, "Test char get 1 failed, iteration %d\n", i); + SWIG_exit(1); + } + DeleteCharHeapString(); + } + + for (i=0; i<count; i++) { + const char *str = GetConstCharProgramCodeString(); + if (strcmp(str, CPLUSPLUS_MSG) != 0) { + fprintf(stderr, "Test char get 2 failed, iteration %d\n", i); + SWIG_exit(1); + } + DeleteCharHeapString(); + } + + for (i=0; i<count; i++) { + char *str = GetCharStaticString(); + if (strcmp(str, CPLUSPLUS_MSG) != 0) { + fprintf(stderr, "Test char get 3 failed, iteration %d\n", i); + SWIG_exit(1); + } + } + + for (i=0; i<count; i++) { + char *str = GetCharStaticStringFixed(); + if (strcmp(str, CPLUSPLUS_MSG) != 0) { + fprintf(stderr, "Test char get 4 failed, iteration %d\n", i); + SWIG_exit(1); + } + } + + for (i=0; i<count; i++) { + const char *str = GetConstCharStaticStringFixed(); + if (strcmp(str, CPLUSPLUS_MSG) != 0) { + fprintf(stderr, "Test char get 5 failed, iteration %d\n", i); + SWIG_exit(1); + } + } + + // set functions + for (i=0; i<count; i++) { + char str[256]; + sprintf(str, "%s%d", OTHERLAND_MSG, i); + if (!SetCharHeapString(str, i)) { + fprintf(stderr, "Test char set 1 failed, iteration %d\n", i); + SWIG_exit(1); + } + } + + + for (i=0; i<count; i++) { + char str[256]; + sprintf(str, "%s%d", OTHERLAND_MSG, i); + if (!SetCharStaticString(str, i)) { + fprintf(stderr, "Test char set 2 failed, iteration %d\n", i); + SWIG_exit(1); + } + } + + for (i=0; i<count; i++) { + char str[256]; + sprintf(str, "%s%d", OTHERLAND_MSG, i); + if (!SetCharArrayStaticString(str, i)) { + fprintf(stderr, "Test char set 3 failed, iteration %d\n", i); + SWIG_exit(1); + } + } + + for (i=0; i<count; i++) { + char str[256]; + sprintf(str, "%s%d", OTHERLAND_MSG, i); + if (!SetConstCharHeapString(str, i)) { + fprintf(stderr, "Test char set 4 failed, iteration %d\n", i); + SWIG_exit(1); + } + } + + for (i=0; i<count; i++) { + char str[256]; + sprintf(str, "%s%d", OTHERLAND_MSG, i); + if (!SetConstCharStaticString(str, i)) { + fprintf(stderr, "Test char set 5 failed, iteration %d\n", i); + SWIG_exit(1); + } + } + + for (i=0; i<count; i++) { + char str[256]; + sprintf(str, "%s%d", OTHERLAND_MSG, i); + if (!SetConstCharArrayStaticString(str, i)) { + fprintf(stderr, "Test char set 6 failed, iteration %d\n", i); + SWIG_exit(1); + } + } + + // get set function + for (i=0; i<count; i++) { + char ping[256]; + sprintf(ping, "%s%d", OTHERLAND_MSG, i); + char *pong = CharPingPong(ping); + if (strcmp(ping, pong) != 0) { + fprintf(stderr, "Test PingPong 1 failed.\nExpected:%d\nReceived:%d\n", ping, pong); + SWIG_exit(1); + } + } + + // variables + + for (i=0; i<count; i++) { + char str[256]; + sprintf(str, "%s%d", OTHERLAND_MSG, i); + global_char = str; + if (strcmp(global_char, str) != 0) { + fprintf(stderr, "Test variables 1 failed, iteration %d\n", i); + SWIG_exit(1); + } + } + + for (i=0; i<count; i++) { + char str[256]; + sprintf(str, "%s%d", OTHERLAND_MSG, i); + sprintf(global_char_array1, "%s%d", OTHERLAND_MSG, i); + if (strcmp(global_char_array1, str) != 0) { + fprintf(stderr, "Test variables 2 failed, iteration %d\n", i); + SWIG_exit(1); + } + } + + for (i=0; i<count; i++) { + char str[256]; + sprintf(str, "%s%d", OTHERLAND_MSG, i); + sprintf(global_char_array2, "%s%d", OTHERLAND_MSG, i); + if (strcmp(global_char_array2, str) != 0) { + fprintf(stderr, "Test variables 3 failed, iteration %d\n", i); + SWIG_exit(1); + } + } + + for (i=0; i<count; i++) { + if (strcmp(global_const_char, CPLUSPLUS_MSG) != 0) { + fprintf(stderr, "Test variables 3 failed, iteration %d\n", i); + SWIG_exit(1); + } + } + + /* + for (i=0; i<count; i++) { + if (strcmp(global_const_char_array1, CPLUSPLUS_MSG) != 0) { + fprintf(stderr, "Test variables 5 failed, iteration %d\n", i); + SWIG_exit(1); + } + } + + for (i=0; i<count; i++) { + if (strcmp(global_const_char_array2, CPLUSPLUS_MSG) != 0) { + fprintf(stderr, "Test variables 6 failed, iteration %d\n", i); + SWIG_exit(1); + } + } + */ + + // char *& tests + + for (i=0; i<count; i++) { + char **str = GetConstCharPointerRef(); + if (strcmp(*str, CPLUSPLUS_MSG) != 0) { + fprintf(stderr, "Test char pointer ref get failed, iteration %d\n",i); + SWIG_exit(1); + } + } + + for (i=0; i<count; i++) { + char *str = (char*) malloc(sizeof(char) * 256); + sprintf(str, "%s%d", OTHERLAND_MSG, i); + if (!SetConstCharPointerRef((char **) &str, i)) { + fprintf(stderr, "Test char pointer ref set failed, iteration %d\n", i); + SWIG_exit(1); + } + } + + SWIG_exit(0); +} + Modified: branches/gsoc2008-maciekd/Lib/c/c.swg =================================================================== --- branches/gsoc2008-maciekd/Lib/c/c.swg 2008-08-19 07:43:48 UTC (rev 10795) +++ branches/gsoc2008-maciekd/Lib/c/c.swg 2008-08-24 12:39:30 UTC (rev 10796) @@ -31,6 +31,8 @@ %typemap(ctype) const short, const int, const long, const char, const float, const double "$1_type" %typemap(ctype) const unsigned short, const unsigned int, const unsigned long, const unsigned char "$1_type" %typemap(ctype) const void *, const short *, const int *, const long *, const char *, const float *, const double * "$1_type" +%typemap(ctype) short *&, int *&, long *&, char *&, float *&, double *& "$1_basetype **" +%typemap(ctype) const short *&, const int *&, const long *&, const char *&, const float *&, const double *& "$1_basetype **" %typemap(ctype) short [ANY], int [ANY], long [ANY], char [ANY], float [ANY], double [ANY] "$1_basetype *" %typemap(ctype) void * [ANY], short * [ANY], int * [ANY], long * [ANY], char * [ANY], float * [ANY], double * [ANY] "$1_basetype **" %typemap(ctype) void [ANY][ANY], short [ANY][ANY], int [ANY][ANY], long [ANY][ANY], char [ANY][ANY], float [ANY][ANY], double [ANY][ANY] "$1_basetype **" @@ -39,6 +41,7 @@ %typemap(ctype) SWIGTYPE & "SwigObj *" %typemap(ctype) SWIGTYPE * [ANY], SWIGTYPE ** "SwigObj **" %typemap(ctype) SWIGTYPE * [ANY][ANY], SWIGTYPE *** "SwigObj ***" +%typemap(ctype) SWIGTYPE *& "SwigObj **" %typemap(ctype) enum SWIGTYPE "$1_type" %fragment("stdbool_inc", "proxy_header") {#include <stdbool.h>} @@ -58,6 +61,9 @@ %typemap(in) const short &, const int &, const long &, const char &, const float &, const double & "$1 = ($1_basetype *) $input;" %typemap(in) unsigned short &, unsigned int &, unsigned long &, unsigned char & "$1 = ($1_basetype *) $input;" %typemap(in) const unsigned short &, const unsigned int &, const unsigned long &, const unsigned char & "$1 = ($1_basetype *) $input;" + +%typemap(in) short *&, int *&, long *&, char *&, float *&, double *& "$1 = ($1_ltype) $input;" +%typemap(in) const short *&, const int *&, const long *&, const char *&, const float *&, const double *& "$1 = ($1_ltype) $input;" %typemap(in) short [ANY], int [ANY], long [ANY], char [ANY], float [ANY], double [ANY] "$1 = ($1_basetype *) $input;" %typemap(in) void * [ANY], short * [ANY], int * [ANY], long * [ANY], char * [ANY], float * [ANY], double * [ANY] "$1 = ($1_basetype *) $input;" @@ -119,6 +125,13 @@ $1 = ($1_basetype *) 0; } +%typemap(in) SWIGTYPE *& { + if ($input) + $1 = ($1_basetype **) &(*$input)->obj; + else + $1 = ($1_basetype **) 0; +} + // typemaps for return values %typemap(couttype) void, short, int, long, char, float, double "$1_type" @@ -127,6 +140,8 @@ %typemap(couttype) const void *, const short *, const int *, const long *, const char *, const float *, const double * "$1_type" %typemap(couttype) short &, int &, long &, char &, float &, double & "$1_basetype *" %typemap(couttype) const short &, const int &, const long &, const char &, const float &, const double & "$1_basetype const *" +%typemap(couttype) short *&, int *&, long *&, char *&, float *&, double *& "$1_basetype **" +%typemap(couttype) const short *&, const int *&, const long *&, const char *&, const float *&, const double *& "$1_basetype **" %typemap(couttype) short [ANY], int [ANY], long [ANY], char [ANY], float [ANY], double [ANY] "$1_basetype *" %typemap(couttype) SWIGTYPE "SwigObj *" %typemap(couttype) SWIGTYPE * "SwigObj *" @@ -149,6 +164,8 @@ %typemap(out) unsigned short &, unsigned int &, unsigned long &, unsigned char & "$result = $1;" %typemap(out) const short &, const int &, const long &, const char &, const float &, const double & "$result = $1;" %typemap(out) const unsigned short &, const unsigned int &, const unsigned long &, const unsigned char & "$result = $1;" +%typemap(out) short *&, int *&, long *&, char *&, float *&, double *& "$result = $1;" +%typemap(out) const short *&, const int *&, const long *&, const char *&, const float *&, const double *& "$result = $1;" %typemap(out) short [ANY], int [ANY], long [ANY], char [ANY], float [ANY], double [ANY] "$result = $1;" %typemap(out) void "" @@ -202,6 +219,7 @@ $result = (SwigObj***) 0; } + #ifdef SWIG_C_EXCEPT %insert("runtime") %{ typedef struct { Modified: branches/gsoc2008-maciekd/Source/Modules/c.cxx =================================================================== --- branches/gsoc2008-maciekd/Source/Modules/c.cxx 2008-08-19 07:43:48 UTC (rev 10795) +++ branches/gsoc2008-maciekd/Source/Modules/c.cxx 2008-08-24 12:39:30 UTC (rev 10796) @@ -78,6 +78,9 @@ } } + if (!CPlusPlus) + except_flag = false; + // add a symbol to the parser for conditional compilation Preprocessor_define("SWIGC 1", 0); Preprocessor_define("SWIG_C_RUNTME 1", 0); @@ -256,8 +259,19 @@ SwigType *type = Getattr(n, "type"); if (SwigType_isenum(type)) type = make_enum_type(n, type); - String *type_str = SwigType_str(type, 0); - Printv(f_proxy_header, "SWIGIMPORT ", type_str, " ", name, ";\n\n", NIL); + String *type_str = Copy(SwigType_str(type, 0)); + if (SwigType_isarray(type)) { + String *dims = Strchr(type_str, '['); + char *c = Char(type_str); + c[Len(type_str) - Len(dims) - 1] = '\0'; + String *bare_type = NewStringf("%s", c); + //Printv(f_proxy_header, "SWIGIMPORT ", bare_type, " *", name, ";\n\n", NIL); + Printv(f_proxy_header, "SWIGIMPORT ", bare_type, " ", name, "[];\n\n", NIL); + Delete(bare_type); + } + else + Printv(f_proxy_header, "SWIGIMPORT ", type_str, " ", name, ";\n\n", NIL); + Delete(type_str); return SWIG_OK; } @@ -452,6 +466,23 @@ gencomma = 1; } Printv(wrapper->def, return_type, " ", wname, "(", proto, ") {\n", NIL); + + // attach 'check' typemaps + Swig_typemap_attach_parms("check", parms, wrapper); + + // insert constraint checking + for (p = parms; p; ) { + if ((tm = Getattr(p, "tmap:check"))) { + Replaceall(tm, "$target", Getattr(p, "lname")); + Replaceall(tm, "$name", name); + Printv(wrapper->code, tm, "\n", NIL); + p = Getattr(p, "tmap:check:next"); + } + else { + p = nextSibling(p); + } + } + Append(wrapper->code, prepend_feature(n)); if (!is_void_return) { Printv(wrapper->code, return_type, " result;\n", NIL); @@ -538,6 +569,9 @@ return_var_type = SwigType_base(type); SwigType_add_pointer(return_var_type); } + if (SwigType_ispointer(type)) { + SwigType_add_pointer(return_var_type); + } SwigType_add_reference(type); } else if (SwigType_isarray(type)) { @@ -562,6 +596,8 @@ else if (SwigType_isreference(type)) { return_var_type = SwigType_base(type); SwigType_add_pointer(return_var_type); + if (SwigType_ispointer(type)) + SwigType_add_pointer(return_var_type); } else if (SwigType_isarray(type)) { return_var_type = SwigType_base(type); @@ -682,6 +718,19 @@ // emit variable for holding function return value emit_return_variable(n, return_type, wrapper); + // insert constraint checking + for (p = parms; p; ) { + if ((tm = Getattr(p, "tmap:check"))) { + Replaceall(tm, "$target", Getattr(p, "lname")); + Replaceall(tm, "$name", name); + Printv(wrapper->code, tm, "\n", NIL); + p = Getattr(p, "tmap:check:next"); + } + else { + p = nextSibling(p); + } + } + // emit action code String *action = emit_action(n); String *except = Getattr(n, "feature:except"); @@ -724,18 +773,6 @@ Append(wrapper->code, action); } - // insert constraint checking - for (p = parms; p; ) { - if ((tm = Getattr(p, "tmap:check"))) { - Replaceall(tm, "$target", Getattr(p, "lname")); - Printv(wrapper->code, tm, "\n", NIL); - p = Getattr(p, "tmap:check:next"); - } - else { - p = nextSibling(p); - } - } - // insert cleanup code for (p = parms; p; ) { if ((tm = Getattr(p, "tmap:freearg"))) { @@ -823,6 +860,24 @@ } /* --------------------------------------------------------------------- + * emit_c_struct_def() + * --------------------------------------------------------------------- */ + + void emit_c_struct_def(Node *node) { + for ( ; node; node = nextSibling(node)) { + String* kind = Getattr(node, "kind"); + if ((Cmp(kind, "variable") == 0) || (Cmp(kind, "function") == 0)) { + String* type = NewString(""); + Printv(type, Getattr(node, "decl"), Getattr(node, "type"), NIL); + Printv(f_proxy_header, " ", SwigType_str(type, 0), " ", Getattr(node, "name"), ";\n", NIL); + Delete(type); + } + if (Cmp(nodeType(node), "extend") == 0) + emit_c_struct_def(firstChild(node)); + } + } + + /* --------------------------------------------------------------------- * classHandler() * --------------------------------------------------------------------- */ @@ -877,16 +932,8 @@ // this is C struct, just declare it in proxy if (proxy_flag) { Printv(f_proxy_header, "struct ", name, " {\n", NIL); - Node* node; - for (node = firstChild(n); node; node = nextSibling(node)) { - String* kind = Getattr(node, "kind"); - if ((Cmp(kind, "variable") == 0) || (Cmp(kind, "function") == 0)) { - String* type = NewString(""); - Printv(type, Getattr(node, "decl"), Getattr(node, "type"), NIL); - Printv(f_proxy_header, " ", SwigType_str(type, 0), " ", Getattr(node, "name"), ";\n", NIL); - Delete(type); - } - } + Node *node = firstChild(n); + emit_c_struct_def(node); Append(f_proxy_header, "};\n\n"); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ma...@us...> - 2009-02-04 16:10:11
|
Revision: 11109 http://swig.svn.sourceforge.net/swig/?rev=11109&view=rev Author: maciekd Date: 2009-02-04 16:10:07 +0000 (Wed, 04 Feb 2009) Log Message: ----------- Fix for returning objects. Modified Paths: -------------- branches/gsoc2008-maciekd/Lib/c/std_string.i branches/gsoc2008-maciekd/Source/Modules/c.cxx branches/gsoc2008-maciekd/Tools/config/config.guess branches/gsoc2008-maciekd/Tools/config/config.sub Modified: branches/gsoc2008-maciekd/Lib/c/std_string.i =================================================================== --- branches/gsoc2008-maciekd/Lib/c/std_string.i 2009-02-01 20:54:00 UTC (rev 11108) +++ branches/gsoc2008-maciekd/Lib/c/std_string.i 2009-02-04 16:10:07 UTC (rev 11109) @@ -1,50 +1,50 @@ -%{ -#include <string> -%} - -namespace std { - -// use "const string &" typemaps for wrapping member strings -%naturalvar string; - -class string; - -%typemap(ctype) string "char *" -%typemap(ctype) const string & "char *" -%typemap(couttype) string "char *" -%typemap(couttype) const string & "char *" - -%typemap(in) string { - if ($input) { - $1.assign($input); - } - else { - $1.resize(0); - } -} - -%typemap(in) const string & { - if ($input) { - $1 = new std::string($input); - } - else { - $1 = new std::string(); - $1->resize(0); - } -} - -%typemap(freearg) const string & { - if ($1) - delete $1; -} - -%typemap(out) string, const string &, string * { - const char *str = cppresult->c_str(); - size_t len = strlen(str); - $result = (char *) malloc(len + 1); - memcpy($result, str, len); - $result[len] = '\0'; -} - -} - +%{ +#include <string> +%} + +namespace std { + +// use "const string &" typemaps for wrapping member strings +%naturalvar string; + +class string; + +%typemap(ctype) string "char *" +%typemap(ctype) const string & "char *" +%typemap(couttype) string "char *" +%typemap(couttype) const string & "char *" + +%typemap(in) string { + if ($input) { + $1.assign($input); + } + else { + $1.resize(0); + } +} + +%typemap(in) const string & { + if ($input) { + $1 = new std::string($input); + } + else { + $1 = new std::string(); + $1->resize(0); + } +} + +%typemap(freearg) const string & { + if ($1) + delete $1; +} + +%typemap(out) string, const string &, string * { + const char *str = cppresult.c_str(); + size_t len = strlen(str); + $result = (char *) malloc(len + 1); + memcpy($result, str, len); + $result[len] = '\0'; +} + +} + Modified: branches/gsoc2008-maciekd/Source/Modules/c.cxx =================================================================== --- branches/gsoc2008-maciekd/Source/Modules/c.cxx 2009-02-01 20:54:00 UTC (rev 11108) +++ branches/gsoc2008-maciekd/Source/Modules/c.cxx 2009-02-04 16:10:07 UTC (rev 11109) @@ -612,9 +612,7 @@ } else { return_var_type = type; - SwigType_add_pointer(return_var_type); } - Wrapper_add_localv(wrapper, "cppresult", SwigType_str(return_var_type, 0), "cppresult", NIL); return_object = true; } Modified: branches/gsoc2008-maciekd/Tools/config/config.guess =================================================================== --- branches/gsoc2008-maciekd/Tools/config/config.guess 2009-02-01 20:54:00 UTC (rev 11108) +++ branches/gsoc2008-maciekd/Tools/config/config.guess 2009-02-04 16:10:07 UTC (rev 11109) @@ -4,7 +4,7 @@ # 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, # Inc. -timestamp='2007-03-06' +timestamp='2006-07-02' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -161,7 +161,6 @@ arm*) machine=arm-unknown ;; sh3el) machine=shl-unknown ;; sh3eb) machine=sh-unknown ;; - sh5el) machine=sh5le-unknown ;; *) machine=${UNAME_MACHINE_ARCH}-unknown ;; esac # The Operating System including object format, if it has switched @@ -781,7 +780,7 @@ i*:CYGWIN*:*) echo ${UNAME_MACHINE}-pc-cygwin exit ;; - *:MINGW*:*) + i*:MINGW*:*) echo ${UNAME_MACHINE}-pc-mingw32 exit ;; i*:windows32*:*) @@ -791,15 +790,12 @@ i*:PW*:*) echo ${UNAME_MACHINE}-pc-pw32 exit ;; - *:Interix*:[3456]*) - case ${UNAME_MACHINE} in - x86) - echo i586-pc-interix${UNAME_RELEASE} - exit ;; - EM64T | authenticamd) - echo x86_64-unknown-interix${UNAME_RELEASE} - exit ;; - esac ;; + x86:Interix*:[3456]*) + echo i586-pc-interix${UNAME_RELEASE} + exit ;; + EM64T:Interix*:[3456]*) + echo x86_64-unknown-interix${UNAME_RELEASE} + exit ;; [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) echo i${UNAME_MACHINE}-pc-mks exit ;; @@ -954,9 +950,6 @@ x86_64:Linux:*:*) echo x86_64-unknown-linux-gnu exit ;; - xtensa:Linux:*:*) - echo xtensa-unknown-linux-gnu - exit ;; i*86:Linux:*:*) # The BFD linker knows what the default object file format is, so # first see if it will tell us. cd to the root directory to prevent @@ -1215,15 +1208,6 @@ SX-6:SUPER-UX:*:*) echo sx6-nec-superux${UNAME_RELEASE} exit ;; - SX-7:SUPER-UX:*:*) - echo sx7-nec-superux${UNAME_RELEASE} - exit ;; - SX-8:SUPER-UX:*:*) - echo sx8-nec-superux${UNAME_RELEASE} - exit ;; - SX-8R:SUPER-UX:*:*) - echo sx8r-nec-superux${UNAME_RELEASE} - exit ;; Power*:Rhapsody:*:*) echo powerpc-apple-rhapsody${UNAME_RELEASE} exit ;; Modified: branches/gsoc2008-maciekd/Tools/config/config.sub =================================================================== --- branches/gsoc2008-maciekd/Tools/config/config.sub 2009-02-01 20:54:00 UTC (rev 11108) +++ branches/gsoc2008-maciekd/Tools/config/config.sub 2009-02-04 16:10:07 UTC (rev 11109) @@ -4,7 +4,7 @@ # 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, # Inc. -timestamp='2007-01-18' +timestamp='2006-09-20' # This file is (in principle) common to ALL GNU software. # The presence of a machine in this file suggests that SOME GNU software @@ -245,12 +245,12 @@ | bfin \ | c4x | clipper \ | d10v | d30v | dlx | dsp16xx \ - | fido | fr30 | frv \ + | fr30 | frv \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | i370 | i860 | i960 | ia64 \ | ip2k | iq2000 \ | m32c | m32r | m32rle | m68000 | m68k | m88k \ - | maxq | mb | microblaze | mcore | mep \ + | maxq | mb | microblaze | mcore \ | mips | mipsbe | mipseb | mipsel | mipsle \ | mips16 \ | mips64 | mips64el \ @@ -324,7 +324,7 @@ | clipper-* | craynv-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ | elxsi-* \ - | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ + | f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \ | h8300-* | h8500-* \ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ | i*86-* | i860-* | i960-* | ia64-* \ @@ -925,9 +925,6 @@ basic_machine=sh-hitachi os=-hms ;; - sh5el) - basic_machine=sh5le-unknown - ;; sh64) basic_machine=sh64-unknown ;; @@ -1222,7 +1219,7 @@ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ - | -skyos* | -haiku* | -rdos* | -toppers* | -drops*) + | -skyos* | -haiku* | -rdos* | -toppers*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) @@ -1417,9 +1414,6 @@ m68*-cisco) os=-aout ;; - mep-*) - os=-elf - ;; mips*-cisco) os=-elf ;; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ma...@us...> - 2009-03-18 15:04:39
|
Revision: 11155 http://swig.svn.sourceforge.net/swig/?rev=11155&view=rev Author: maciekd Date: 2009-03-18 15:04:20 +0000 (Wed, 18 Mar 2009) Log Message: ----------- Fixed some issues with member variables handling Modified Paths: -------------- branches/gsoc2008-maciekd/Examples/Makefile.in branches/gsoc2008-maciekd/Examples/c/class/Makefile branches/gsoc2008-maciekd/Examples/c/exception/Makefile branches/gsoc2008-maciekd/Examples/c/simple/Makefile branches/gsoc2008-maciekd/Examples/test-suite/c/Makefile.in branches/gsoc2008-maciekd/Lib/c/c.swg branches/gsoc2008-maciekd/Lib/c/clabels.swg branches/gsoc2008-maciekd/Source/Modules/c.cxx branches/gsoc2008-maciekd/configure.in Modified: branches/gsoc2008-maciekd/Examples/Makefile.in =================================================================== --- branches/gsoc2008-maciekd/Examples/Makefile.in 2009-03-16 21:39:36 UTC (rev 11154) +++ branches/gsoc2008-maciekd/Examples/Makefile.in 2009-03-18 15:04:20 UTC (rev 11155) @@ -1098,17 +1098,19 @@ # ---------------------------------------------------------------- CLIBPREFIX = lib +C_LDSHARED = @C_LDSHARED@ +CXX_LDSHARED = @CXX_LDSHARED@ +C_SO = @C_SO@ c: $(SRCS) $(SWIG) -c $(SWIGOPT) $(INTERFACE) $(CC) -c $(CCSHARED) $(CFLAGS) $(ISRCS) $(SRCS) $(INCLUDES) - $(LDSHARED) $(CFLAGS) $(OBJS) $(IOBJS) $(LIBS) -o $(CLIBPREFIX)$(TARGET)$(SO) + $(C_LDSHARED) $(CFLAGS) $(OBJS) $(IOBJS) $(LIBS) -o $(CLIBPREFIX)$(TARGET)$(C_SO) c_cpp: $(SRCS) $(SWIG) -c++ -c $(SWIGOPT) $(INTERFACE) $(CXX) -c $(CCSHARED) $(CXXFLAGS) $(ICXXSRCS) $(SRCS) $(CXXSRCS) $(INCLUDES) - $(CXXSHARED) $(CFLAGS) $(OBJS) $(IOBJS) $(LIBS) $(CPP_DLLIBS) -o $(CLIBPREFIX)$(TARGET)$(SO) + $(CXX_LDSHARED) $(CFLAGS) $(OBJS) $(IOBJS) $(LIBS) $(CPP_DLLIBS) -o $(CLIBPREFIX)$(TARGET)$(C_SO) c_compile: $(RUNME) $(PROXY) $(CC) $(RUNME) $(PROXY) -L. -l$(TARGET) -o $(RUNME:.c=) - Modified: branches/gsoc2008-maciekd/Examples/c/class/Makefile =================================================================== --- branches/gsoc2008-maciekd/Examples/c/class/Makefile 2009-03-16 21:39:36 UTC (rev 11154) +++ branches/gsoc2008-maciekd/Examples/c/class/Makefile 2009-03-18 15:04:20 UTC (rev 11155) @@ -24,6 +24,6 @@ env LD_LIBRARY_PATH=. $(MEMTOOL) ./runme clean: - rm -f *.o *.out *.so *.a *.dll *.exe *_wrap* *_proxy* *~ runme + rm -f *.o *.out *.so *.a *.dll *.dylib *.exe *_wrap* *_proxy* *~ runme check: all Modified: branches/gsoc2008-maciekd/Examples/c/exception/Makefile =================================================================== --- branches/gsoc2008-maciekd/Examples/c/exception/Makefile 2009-03-16 21:39:36 UTC (rev 11154) +++ branches/gsoc2008-maciekd/Examples/c/exception/Makefile 2009-03-18 15:04:20 UTC (rev 11155) @@ -24,6 +24,6 @@ env LD_LIBRARY_PATH=. $(MEMTOOL) ./runme clean: - rm -f *.o *.out *.so *.a *.dll *.exe *_wrap* *_proxy* *~ runme + rm -f *.o *.out *.so *.a *.dll *.dylib *.exe *_wrap* *_proxy* *~ runme check: all Modified: branches/gsoc2008-maciekd/Examples/c/simple/Makefile =================================================================== --- branches/gsoc2008-maciekd/Examples/c/simple/Makefile 2009-03-16 21:39:36 UTC (rev 11154) +++ branches/gsoc2008-maciekd/Examples/c/simple/Makefile 2009-03-18 15:04:20 UTC (rev 11155) @@ -24,6 +24,6 @@ env LD_LIBRARY_PATH=. $(MEMTOOL) ./runme clean: - rm -f *.o *.so *.out *.a *.exe *.dll *_wrap* *_proxy* *~ runme + rm -f *.o *.so *.out *.a *.exe *.dll *.dylib *_wrap* *_proxy* *~ runme check: all Modified: branches/gsoc2008-maciekd/Examples/test-suite/c/Makefile.in =================================================================== --- branches/gsoc2008-maciekd/Examples/test-suite/c/Makefile.in 2009-03-16 21:39:36 UTC (rev 11154) +++ branches/gsoc2008-maciekd/Examples/test-suite/c/Makefile.in 2009-03-18 15:04:20 UTC (rev 11155) @@ -12,13 +12,12 @@ C_TEST_CASES = -CPP_TEST_CASES = \ - cast_operator \ - char_strings \ - exception_order \ - exception_partial_info \ - enums \ - enum_plus \ +CPP_TEST_CASES = cast_operator \ + char_strings \ + exception_order \ + exception_partial_info \ + enums \ + enum_plus include $(srcdir)/../common.mk Modified: branches/gsoc2008-maciekd/Lib/c/c.swg =================================================================== --- branches/gsoc2008-maciekd/Lib/c/c.swg 2009-03-16 21:39:36 UTC (rev 11154) +++ branches/gsoc2008-maciekd/Lib/c/c.swg 2009-03-18 15:04:20 UTC (rev 11155) @@ -15,6 +15,7 @@ #include <setjmp.h> #define SWIG_STR(x) #x +#define SWIG_contract_assert(expr, msg) if(!(expr)) { printf("%s\n", msg); SWIG_exit(0); } else %} // typemaps for function parameters @@ -34,7 +35,7 @@ %typemap(ctype) short *&, int *&, long *&, char *&, float *&, double *& "$1_basetype **" %typemap(ctype) const short *&, const int *&, const long *&, const char *&, const float *&, const double *& "$1_basetype **" %typemap(ctype) short [ANY], int [ANY], long [ANY], char [ANY], float [ANY], double [ANY] "$1_basetype *" -%typemap(ctype) void * [ANY], short * [ANY], int * [ANY], long * [ANY], char * [ANY], float * [ANY], double * [ANY] "$1_basetype **" +%typemap(ctype) void * [ANY], short * [ANY], int * [ANY], long * [ANY], char * [ANY], float * [ANY], double * [ANY] "$1_basetype *" %typemap(ctype) void [ANY][ANY], short [ANY][ANY], int [ANY][ANY], long [ANY][ANY], char [ANY][ANY], float [ANY][ANY], double [ANY][ANY] "$1_basetype **" %typemap(ctype) SWIGTYPE "SwigObj *" %typemap(ctype) SWIGTYPE * "SwigObj *" @@ -96,10 +97,13 @@ $1 = ($1_ltype) 0; } +/* + * unsupported yet %typemap(freearg) SWIGTYPE * [ANY], SWIGTYPE * [ANY][ANY], SWIGTYPE **, SWIGTYPE *** { - if (arg2) - free(arg2); + if ($input) + free($input); } +*/ %typemap(in) SWIGTYPE * [ANY][ANY], SWIGTYPE *** { if ($input) { @@ -143,9 +147,11 @@ %typemap(couttype) short *&, int *&, long *&, char *&, float *&, double *& "$1_basetype **" %typemap(couttype) const short *&, const int *&, const long *&, const char *&, const float *&, const double *& "$1_basetype **" %typemap(couttype) short [ANY], int [ANY], long [ANY], char [ANY], float [ANY], double [ANY] "$1_basetype *" +%typemap(couttype) short * [ANY], int * [ANY], long * [ANY], char * [ANY], float * [ANY], double * [ANY] "$1_basetype *" %typemap(couttype) SWIGTYPE "SwigObj *" %typemap(couttype) SWIGTYPE * "SwigObj *" %typemap(couttype) SWIGTYPE & "SwigObj *" +%typemap(couttype) SWIGTYPE [ANY] "SwigObj **" %typemap(couttype) SWIGTYPE * [ANY], SWIGTYPE ** "SwigObj **" %typemap(couttype) SWIGTYPE * [ANY][ANY], SWIGTYPE *** "SwigObj ***" %typemap(couttype) enum SWIGTYPE "$1_type" @@ -167,6 +173,7 @@ %typemap(out) short *&, int *&, long *&, char *&, float *&, double *& "$result = $1;" %typemap(out) const short *&, const int *&, const long *&, const char *&, const float *&, const double *& "$result = $1;" %typemap(out) short [ANY], int [ANY], long [ANY], char [ANY], float [ANY], double [ANY] "$result = $1;" +%typemap(out) short * [ANY], int * [ANY], long * [ANY], char * [ANY], float * [ANY], double * [ANY] "$result = $1;" %typemap(out) void "" %typemap(out, fragment="stdbool_inc") bool, bool *, const bool, const bool * "$result = $1;" @@ -175,31 +182,41 @@ %typemap(out) enum SWIGTYPE "$result = ($1_type) $1;" %typemap(out) SWIGTYPE { - $result = SWIG_create_object(SWIG_STR($1_type)); + $result = SWIG_temporary; $result->obj = (void*) &$1; } %typemap(out) SWIGTYPE *, SWIGTYPE & { - $result = SWIG_create_object(SWIG_STR($1_basetype)); + $result = SWIG_temporary; $result->obj = (void*) $1; } %typemap(out) SWIGTYPE * [ANY], SWIGTYPE ** { + static SwigObj **_temp = 0; if ($1) { - $result = (SwigObj**) malloc($1_dim0 * sizeof(SwigObj*)); size_t i = 0; - for ( ; i < $1_dim0; ++i) + if (_temp) { + for ( ; i < $1_dim0; ++i) + SWIG_destroy_object(_temp[i]); + free(_temp); + } + _temp = (SwigObj**) malloc($1_dim0 * sizeof(SwigObj*)); + for (i = 0 ; i < $1_dim0; ++i) { if ($1[i]) { - $result[i] = SWIG_create_object(SWIG_STR($1_ltype)); - $result[i]->obj = (void*) $1[i]; + _temp[i] = SWIG_create_object(SWIG_STR($1_ltype)); + _temp[i]->obj = (void*) $1[i]; } else - $result[i] = (SwigObj*) 0; + _temp[i] = (SwigObj*) 0; + } + $result = _temp; } else $result = (SwigObj**) 0; } +/* + * 2+ dim arrays - not supported yet %typemap(out) SWIGTYPE * [ANY][ANY], SWIGTYPE *** { if ($1) { $result = (SwigObj***) malloc($1_dim0 * $1_dim1 * sizeof(SwigObj*)); @@ -217,7 +234,7 @@ } else $result = (SwigObj***) 0; -} +}*/ #ifdef SWIG_C_EXCEPT @@ -228,6 +245,11 @@ } SwigObj; %} %include "cexcept.swg" +#ifdef SWIG_CPPMODE +%insert("runtime") %{ +SwigObj *SWIG_temporary = (SwigObj *) malloc(sizeof(SwigObj)); +%} +#endif #else %insert("runtime") %{ typedef struct { @@ -247,6 +269,12 @@ #endif %} +#ifdef SWIG_CPPMODE +%insert("runtime") %{ +SwigObj *SWIG_temporary = (SwigObj *) malloc(sizeof(SwigObj)); +%} +#endif + %insert("proxy_header") %{ typedef struct { void *obj; Modified: branches/gsoc2008-maciekd/Lib/c/clabels.swg =================================================================== --- branches/gsoc2008-maciekd/Lib/c/clabels.swg 2009-03-16 21:39:36 UTC (rev 11154) +++ branches/gsoc2008-maciekd/Lib/c/clabels.swg 2009-03-18 15:04:20 UTC (rev 11155) @@ -7,7 +7,7 @@ // this is used instead of default SWIGEXPORT symbol #ifndef SWIGEXPORTC -# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) +# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) || defined(__APPLE__) # define SWIGEXPORTC # else # if defined(__GNUC__) && defined(GCC_HASCLASSVISIBILITY) @@ -19,7 +19,7 @@ #endif #ifndef SWIGPROTECT -# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) +# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) || defined(__APPLE__) # define SWIGPROTECT(x) # else # if defined(__GNUC__) && defined(GCC_HASCLASSVISIBILITY) Modified: branches/gsoc2008-maciekd/Source/Modules/c.cxx =================================================================== --- branches/gsoc2008-maciekd/Source/Modules/c.cxx 2009-03-16 21:39:36 UTC (rev 11154) +++ branches/gsoc2008-maciekd/Source/Modules/c.cxx 2009-03-18 15:04:20 UTC (rev 11155) @@ -78,14 +78,15 @@ } } - if (!CPlusPlus) + if (!CPlusPlus) except_flag = false; // add a symbol to the parser for conditional compilation Preprocessor_define("SWIGC 1", 0); - Preprocessor_define("SWIG_C_RUNTME 1", 0); if (except_flag) Preprocessor_define("SWIG_C_EXCEPT 1", 0); + if (CPlusPlus) + Preprocessor_define("SWIG_CPPMODE 1", 0); SWIG_library_directory("c"); @@ -199,7 +200,7 @@ } Swig_register_filebyname("header", f_header); - Swig_register_filebyname("wrappers", f_wrappers); + Swig_register_filebyname("wrapper", f_wrappers); Swig_register_filebyname("runtime", f_runtime); Swig_register_filebyname("init", f_init); @@ -425,7 +426,7 @@ /* ---------------------------------------------------------------------- * functionWrapper() * ---------------------------------------------------------------------- */ - + virtual int functionWrapper(Node *n) { String *name = Getattr(n, "sym:name"); SwigType *type = Getattr(n, "type"); @@ -544,13 +545,13 @@ Swig_warning(WARN_C_TYPEMAP_CTYPE_UNDEF, input_file, line_number, "No couttype typemap defined for %s\n", SwigType_str(type, 0)); } - // add variable for holding result of original function + // add variable for holding result of original function 'cppresult' bool return_object = false; if (!is_void_return && (Cmp(Getattr(n, "c:objstruct"), "1") != 0)) { SwigType *tdtype = SwigType_typedef_resolve(type); if (tdtype) type = tdtype; - + if (SwigType_isenum(type)) { Wrapper_add_localv(wrapper, "cppresult", "int", "cppresult", NIL); } @@ -575,12 +576,15 @@ SwigType_add_reference(type); } else if (SwigType_isarray(type)) { + return_var_type = SwigType_base(type); SwigType *atype = Copy(type); do { SwigType_del_array(atype); SwigType_add_pointer(return_var_type); } while (SwigType_isarray(atype)); + if (SwigType_ispointer(atype)) + SwigType_add_pointer(return_var_type); Delete(atype); } else { @@ -611,6 +615,7 @@ SwigType_add_pointer(return_var_type); } else { + SwigType_add_pointer(type); return_var_type = type; } Wrapper_add_localv(wrapper, "cppresult", SwigType_str(return_var_type, 0), "cppresult", NIL); @@ -687,7 +692,10 @@ gencomma = 1; // apply typemaps for input parameter - if ((tm = Getattr(p, "tmap:in"))) { + if (Cmp(nodeType(n), "destructor") == 0) { + p = Getattr(p, "tmap:in:next"); + } + else if ((tm = Getattr(p, "tmap:in"))) { if (dont_apply_tmap) { Printv(wrapper->code, lname, " = ", arg_name, ";\n", NIL); } @@ -702,6 +710,7 @@ Swig_warning(WARN_TYPEMAP_IN_UNDEF, input_file, line_number, "Unable to use type %s as a function argument.\n", SwigType_str(type, 0)); p = nextSibling(p); } + Delete(arg_name); Delete(proxy_parm_type); @@ -710,12 +719,14 @@ Printf(wrapper->def, ") {"); - // emit variables for holding parameters - emit_parameter_variables(parms, wrapper); - - // emit variable for holding function return value - emit_return_variable(n, return_type, wrapper); - + if (Cmp(nodeType(n), "destructor") != 0) { + // emit variables for holding parameters + emit_parameter_variables(parms, wrapper); + + // emit variable for holding function return value + emit_return_variable(n, return_type, wrapper); + } + // insert constraint checking for (p = parms; p; ) { if ((tm = Getattr(p, "tmap:check"))) { @@ -1043,7 +1054,11 @@ String *code = NewString(""); // create code for 'get' function - Printv(code, "result = ", classname, "::", name, ";\n", NIL); + Printv(code, "result = $mod", classname, "::", name, ";\n", NIL); + if (!SwigType_isbuiltin(SwigType_base(type)) && !SwigType_ispointer(type)) + Replaceall(code, "$mod", "&"); + else + Replaceall(code, "$mod", ""); wrap_get_variable(n, classname, newclassname, name, code); // create parameter for 'set' function @@ -1066,7 +1081,11 @@ } else code = NewString(""); - Printv(code, classname, "::", name, " = arg1;\n", NIL); + Printv(code, classname, "::", name, " = $mod arg1;\nresult = arg1;\n", NIL); + if (!SwigType_isbuiltin(SwigType_base(type)) && !SwigType_ispointer(type)) + Replaceall(code, "$mod", "*"); + else + Replaceall(code, "$mod", ""); wrap_set_variable(n, classname, newclassname, name, code); } @@ -1082,26 +1101,14 @@ * --------------------------------------------------------------------- */ virtual int membervariableHandler(Node *n) { - SwigType *type = Copy(Getattr(n, "type")); - SwigType *tdtype; - tdtype = SwigType_typedef_resolve(type); - if (tdtype) - type = tdtype; - - int array_count = 0; - while (SwigType_isarray(type)) { - SwigType_del_array(type); - array_count++; + SwigType *type = Getattr(n, "type"); + SwigType *btype = SwigType_base(type); + if (SwigType_isarray(type) && !SwigType_isbuiltin(btype)) { + // this hack applies to member objects array (not ptrs.) + SwigType_add_pointer(btype); + SwigType_add_array(btype, NewStringf("%s", SwigType_array_getdim(type, 0))); + Setattr(n, "type", btype); } - if (type) { - if (!SwigType_ispointer(type) && !SwigType_isreference(type)) - Setattr(n, "c:retval", "1"); - } - while (array_count) { - SwigType_add_pointer(type); - array_count--; - } - Delete(type); return Language::membervariableHandler(n); } @@ -1289,7 +1296,7 @@ // create action code if (except_flag) { Printf(code, "SWIG_remove_registry_entry(carg1);\n"); - Printf(code, "SWIG_destroy_object(arg1);\n"); + Printf(code, "SWIG_destroy_object(carg1);"); } else { Printv(code, "if (carg1->obj)\ndelete (", classname, " *) (carg1->obj);\n", NIL); Modified: branches/gsoc2008-maciekd/configure.in =================================================================== --- branches/gsoc2008-maciekd/configure.in 2009-03-16 21:39:36 UTC (rev 11154) +++ branches/gsoc2008-maciekd/configure.in 2009-03-18 15:04:20 UTC (rev 11155) @@ -1815,6 +1815,24 @@ AC_SUBST(RBIN) +# C module on Mac OS X tweaks +case $host in +*-*-darwin*) + C_LDSHARED="cc -dynamiclib" + CXX_LDSHARED="g++ -dynamiclib" + C_SO=".dylib" + ;; +*) + C_LDSHARED=$(LDSHARED) + CXX_LDSHARED="$(CXXSHARED)" + C_SO=$(SO) + ;; +esac + +AC_SUBST(C_LDSHARED) +AC_SUBST(CXX_LDSHARED) +AC_SUBST(C_SO) + #---------------------------------------------------------------- # Determine which languages to use for examples/test-suite #---------------------------------------------------------------- This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ma...@us...> - 2009-04-08 20:32:34
|
Revision: 11184 http://swig.svn.sourceforge.net/swig/?rev=11184&view=rev Author: maciekd Date: 2009-04-08 20:32:30 +0000 (Wed, 08 Apr 2009) Log Message: ----------- Fix for warning on return by value. Fix for std_string. Modified Paths: -------------- branches/gsoc2008-maciekd/Lib/c/std_string.i branches/gsoc2008-maciekd/Source/Modules/c.cxx Property Changed: ---------------- branches/gsoc2008-maciekd/ Property changes on: branches/gsoc2008-maciekd ___________________________________________________________________ Modified: svnmerge-integrated - /trunk:1-10605 + /trunk:1-10605 /trunk:1-10489 Modified: branches/gsoc2008-maciekd/Lib/c/std_string.i =================================================================== --- branches/gsoc2008-maciekd/Lib/c/std_string.i 2009-04-01 12:46:26 UTC (rev 11183) +++ branches/gsoc2008-maciekd/Lib/c/std_string.i 2009-04-08 20:32:30 UTC (rev 11184) @@ -10,9 +10,11 @@ class string; %typemap(ctype) string "char *" +%typemap(ctype) string * "char *" %typemap(ctype) const string & "char *" %typemap(couttype) string "char *" %typemap(couttype) const string & "char *" +%typemap(couttype) string * "char *" %typemap(in) string { if ($input) { @@ -23,7 +25,7 @@ } } -%typemap(in) const string & { +%typemap(in) const string &, string * { if ($input) { $1 = new std::string($input); } @@ -33,13 +35,13 @@ } } -%typemap(freearg) const string & { +%typemap(freearg) const string &, string * { if ($1) delete $1; } %typemap(out) string, const string &, string * { - const char *str = cppresult.c_str(); + const char *str = cppresult->c_str(); size_t len = strlen(str); $result = (char *) malloc(len + 1); memcpy($result, str, len); Modified: branches/gsoc2008-maciekd/Source/Modules/c.cxx =================================================================== --- branches/gsoc2008-maciekd/Source/Modules/c.cxx 2009-04-01 12:46:26 UTC (rev 11183) +++ branches/gsoc2008-maciekd/Source/Modules/c.cxx 2009-04-08 20:32:30 UTC (rev 11184) @@ -293,6 +293,9 @@ call = Swig_cfunction_call(Getattr(n, "name"), parms); cres = Swig_cresult(type, "result", call); Setattr(n, "wrap:action", cres); + + if (!SwigType_ispointer(type) && !SwigType_isreference(type)) + Setattr(n, "c:retval", "1"); functionWrapper(n); @@ -747,25 +750,26 @@ if (!except || (Cmp(except, "0") != 0)) Printf(action, "if (SWIG_exc.handled) {\nSWIG_rt_stack_pop();\nlongjmp(SWIG_rt_env, 1);\n}\n"); } - if (Cmp(nodeType(n), "constructor") != 0) - Replace(action, "result =", "cppresult = $mod", DOH_REPLACE_FIRST); // handle special cases of cpp return result - - String *mod = NewString("$mod"); - if (SwigType_isreference(type)) - Replaceall(mod, "$mod", ""); - else if (SwigType_isenum(type)) - Replaceall(mod, "$mod", "(int)"); - else if (return_object && Getattr(n, "c:retval") && !SwigType_isarray(type)) - Replaceall(mod, "$mod", "&"); - else { - Delete(mod); - mod = empty_string; + if (Cmp(nodeType(n), "constructor") != 0) { + if (SwigType_isenum(type)) { + // returning enum value + Replace(action, "result =", "cppresult = (int)", DOH_REPLACE_FIRST); + } + else if (return_object && Getattr(n, "c:retval") && !SwigType_isarray(type)) { + // returning object by value + String *str = SwigType_str(SwigType_add_reference(SwigType_base(type)), "_result_ref"); + String *lstr = SwigType_lstr(type, 0); + Replace(action, "result =", NewStringf("const %s = ", str), DOH_REPLACE_FIRST); + Printf(action, "cppresult = (%s) &_result_ref;\n", lstr); + Delete(str); + Delete(lstr); + } + else + Replace(action, "result =", "cppresult = ", DOH_REPLACE_FIRST); } - Replaceall(action, "$mod", mod); - // emit output typemap if needed if (!is_void_return && (Cmp(Getattr(n, "c:objstruct"), "1") != 0)) { if ((tm = Swig_typemap_lookup_out("out", n, "cppresult", wrapper, action))) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ma...@us...> - 2009-04-11 10:46:21
|
Revision: 11186 http://swig.svn.sourceforge.net/swig/?rev=11186&view=rev Author: maciekd Date: 2009-04-11 10:46:13 +0000 (Sat, 11 Apr 2009) Log Message: ----------- Refactored enums handling Modified Paths: -------------- branches/gsoc2008-maciekd/Lib/c/c.swg branches/gsoc2008-maciekd/Source/Modules/c.cxx branches/gsoc2008-maciekd/Tools/config/config.guess branches/gsoc2008-maciekd/Tools/config/config.sub Property Changed: ---------------- branches/gsoc2008-maciekd/ Property changes on: branches/gsoc2008-maciekd ___________________________________________________________________ Modified: svnmerge-integrated - /trunk:1-10605 /trunk:1-10489 + /trunk:1-10489 /trunk:1-10489 Modified: branches/gsoc2008-maciekd/Lib/c/c.swg =================================================================== --- branches/gsoc2008-maciekd/Lib/c/c.swg 2009-04-09 17:51:59 UTC (rev 11185) +++ branches/gsoc2008-maciekd/Lib/c/c.swg 2009-04-11 10:46:13 UTC (rev 11186) @@ -43,7 +43,7 @@ %typemap(ctype) SWIGTYPE * [ANY], SWIGTYPE ** "SwigObj **" %typemap(ctype) SWIGTYPE * [ANY][ANY], SWIGTYPE *** "SwigObj ***" %typemap(ctype) SWIGTYPE *& "SwigObj **" -%typemap(ctype) enum SWIGTYPE "$1_type" +%typemap(ctype) enum SWIGTYPE "int" %fragment("stdbool_inc", "proxy_header") {#include <stdbool.h>} %typemap(ctype, fragment="stdbool_inc") bool, bool *, bool **, const bool, const bool *, bool * [ANY] "$1_type" @@ -154,7 +154,7 @@ %typemap(couttype) SWIGTYPE [ANY] "SwigObj **" %typemap(couttype) SWIGTYPE * [ANY], SWIGTYPE ** "SwigObj **" %typemap(couttype) SWIGTYPE * [ANY][ANY], SWIGTYPE *** "SwigObj ***" -%typemap(couttype) enum SWIGTYPE "$1_type" +%typemap(couttype) enum SWIGTYPE "int" %typemap(couttype, fragment="stdbool_inc") bool, bool *, const bool, const bool * "$1_type" %typemap(couttype, fragment="stdbool_inc") bool & "$1_basetype*" Modified: branches/gsoc2008-maciekd/Source/Modules/c.cxx =================================================================== --- branches/gsoc2008-maciekd/Source/Modules/c.cxx 2009-04-09 17:51:59 UTC (rev 11185) +++ branches/gsoc2008-maciekd/Source/Modules/c.cxx 2009-04-11 10:46:13 UTC (rev 11186) @@ -28,12 +28,9 @@ String *empty_string; String *int_string; - String *enum_values; String *create_object; String *destroy_object; - int enum_id; - bool proxy_flag; bool except_flag; @@ -46,10 +43,8 @@ C() : empty_string(NewString("")), int_string(NewString("int")), - enum_values(0), create_object(0), destroy_object(0), - enum_id(1), proxy_flag(true), except_flag(true) { } @@ -258,8 +253,6 @@ return SWIG_OK; String *name = Getattr(n, "name"); SwigType *type = Getattr(n, "type"); - if (SwigType_isenum(type)) - type = make_enum_type(n, type); String *type_str = Copy(SwigType_str(type, 0)); if (SwigType_isarray(type)) { String *dims = Strchr(type_str, '['); @@ -398,35 +391,6 @@ } /* ---------------------------------------------------------------------- - * make_enum_type() - * - * given C++ enum type this function returns its C representation - * ---------------------------------------------------------------------- */ - - String *make_enum_type(Node *n, SwigType *enumtype) { - Symtab *symtab = Getattr(n, "sym:symtab"); - String *unnamed = Getattr(n, "unnamed"); - String *newtype = 0; - String *query = 0; - - if (!unnamed) - query = Swig_scopename_last(SwigType_str(enumtype, 0)); - else { - Replaceall(unnamed, "$unnamed", "enum"); - Replaceall(unnamed, "$", ""); - query = unnamed; - } - - Node *node = Swig_symbol_clookup(query, symtab); - if (node) - newtype = NewStringf("enum %s", Getattr(node, "name")); - else - newtype = SwigType_str(enumtype, 0); - - return newtype; - } - - /* ---------------------------------------------------------------------- * functionWrapper() * ---------------------------------------------------------------------- */ @@ -534,10 +498,6 @@ if (Cmp(Getattr(n, "c:objstruct"), "1") == 0) { Printv(return_type, SwigType_str(type, 0), NIL); } - else if (SwigType_isenum(type)) { - type = return_type = make_enum_type(n, type); - Setattr(n, "type", return_type); - } else if ((tm = Swig_typemap_lookup("couttype", n, "", 0))) { String *ctypeout = Getattr(n, "tmap:couttype:out"); if (ctypeout) @@ -662,18 +622,9 @@ String *arg_name = NewString(""); Printf(arg_name, "c%s", lname); - bool dont_apply_tmap = false; // set the appropriate type for parameter - if (SwigType_isenum(type)) { - c_parm_type = make_enum_type(n, type); - if (Getattr(n, "unnamed")) { - type = int_string; - Setattr(p, "type", type); - dont_apply_tmap = true; - } - } - else if ((tm = Getattr(p, "tmap:ctype"))) { + if ((tm = Getattr(p, "tmap:ctype"))) { Printv(c_parm_type, tm, NIL); } else { @@ -699,14 +650,9 @@ p = Getattr(p, "tmap:in:next"); } else if ((tm = Getattr(p, "tmap:in"))) { - if (dont_apply_tmap) { - Printv(wrapper->code, lname, " = ", arg_name, ";\n", NIL); - } - else { - Replaceall(tm, "$input", arg_name); - Setattr(p, "emit:input", arg_name); - Printf(wrapper->code, "%s\n", tm); - } + Replaceall(tm, "$input", arg_name); + Setattr(p, "emit:input", arg_name); + Printf(wrapper->code, "%s\n", tm); p = Getattr(p, "tmap:in:next"); } else { @@ -1321,82 +1267,10 @@ /* --------------------------------------------------------------------- * enumDeclaration() - * - * for enums declared inside class we create global enum declaration - * and change enum parameter and return value names * --------------------------------------------------------------------- */ virtual int enumDeclaration(Node *n) { - if (!proxy_flag) - return SWIG_OK; - String *newclassname = Getattr(Swig_methodclass(n), "sym:name"); - String *name = Getattr(n, "sym:name"); - String *code = NewString(""); - String *tdname = Getattr(n, "tdname"); - - if (tdname) { - Printf(code, "typedef "); - name = Getattr(n, "name"); - String *td_def_name = NewStringf("enum %s", name); - SwigType_typedef(td_def_name, name); - Delete(td_def_name); - SwigType_istypedef(name); - } - - Symtab *symtab = Getattr(n, "sym:symtab"); - String *newname = newclassname ? NewStringf("%s_", newclassname) : Copy(name); - - Printf(code, "enum "); - - if (!name) { - String *anonymous_name = NewStringf("enum%d ", enum_id++); - Setattr(n, "sym:name", anonymous_name); - Setattr(n, "unnamed", "1"); - name = Getattr(n, "sym:name"); - Delete(anonymous_name); - } - if (Delattr(n, "unnamed")) { - // unnamed enum declaration: create new symbol - Replaceall(name, "$unnamed", "enum"); - Delitem(name, DOH_END); - - Node *entry = NewHash(); - set_nodeType(entry, "enum"); - Setattr(entry, "name", name); - Setattr(entry, "sym:name", name); - Setattr(entry, "sym:symtab", symtab); - Swig_symbol_add(name, entry); - } - if (newclassname) { - if (symtab) { - Node *node = Swig_symbol_clookup(name, symtab); - if (node) - Append(newname, name); - } - else - Append(newname, "enum"); - - Setattr(n, "name", newname); - } - else { - Delete(newname); - newname = name; - } - Printv(code, newname ? newname : "", " {\n$enumvalues\n} ", tdname ? tdname : "", ";\n\n", NIL); - emit_children(n); - - if (enum_values) { - Replaceall(code, "$enumvalues", enum_values); - Append(f_proxy_header, code); - if (newclassname) - Append(f_header, code); - Delete(enum_values); - enum_values = 0; - } - - Delete(newname); - Delete(code); - return SWIG_OK; + return Language::enumDeclaration(n); } /* --------------------------------------------------------------------- @@ -1404,59 +1278,18 @@ * --------------------------------------------------------------------- */ virtual int enumvalueDeclaration(Node *n) { - String *name = Getattr(n, "sym:name"); - String *enumvalue = Getattr(n, "enumvalue"); - String *init = 0; - if (enumvalue) { - char *value_repr = Char(enumvalue); - if (value_repr) - if (!isdigit(*value_repr) && *value_repr != '+' && *value_repr != '-') { - init = NewStringf(" = '%c'", *value_repr); - } - else - init = NewStringf(" = %s", enumvalue); - } - - String *newclassname = Getattr(Swig_methodclass(parentNode(n)), "sym:name"); - String *newname = NewStringf("%s_%s", newclassname, name); - int gencomma = 1; - if (!enum_values) { - enum_values = NewString(""); - gencomma = 0; - } - Printv(enum_values, gencomma ? ",\n " : " ", newclassname ? newname : name, enumvalue ? init : "", NIL); - Delete(newname); - if (init) - Delete(init); + if (Cmp(Getattr(n, "ismember"), "1") == 0 && Cmp(Getattr(n, "access"), "public") != 0) + return SWIG_NOWRAP; + Swig_require("enumvalueDeclaration", n, "*value", "?enumvalueex", "?enumvalue", NIL); + String *name = Getattr(n, "value"); + String *value = Getattr(n, "enumvalueex"); + value = value ? value : Getattr(n, "enumvalue"); + Printv(f_proxy_header, "#define ", Swig_name_mangle(name), " ", value, "\n", NIL); + Swig_restore(n); return SWIG_OK; } /* --------------------------------------------------------------------- - * typedefHandler() - * --------------------------------------------------------------------- */ - - virtual int typedefHandler(Node *n) { - if (!proxy_flag) - return SWIG_OK; - String *name = Getattr(n, "sym:name"); - String *type = Getattr(n, "type"); - char *c = Char(SwigType_str(type, 0)); - - if (!name) - name = Getattr(n, "name"); - - if (strncmp(c, "enum", 4) != 0) { - if (name && type) { - String *code = NewStringf("typedef %s %s;\n\n", name, type); - Append(f_proxy_header, code); - Delete(code); - SwigType_typedef(type, name); - } - } - return SWIG_OK; - } - - /* --------------------------------------------------------------------- * constantWrapper() * --------------------------------------------------------------------- */ Modified: branches/gsoc2008-maciekd/Tools/config/config.guess =================================================================== --- branches/gsoc2008-maciekd/Tools/config/config.guess 2009-04-09 17:51:59 UTC (rev 11185) +++ branches/gsoc2008-maciekd/Tools/config/config.guess 2009-04-11 10:46:13 UTC (rev 11186) @@ -1,10 +1,10 @@ #! /bin/sh # Attempt to guess a canonical system name. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -# 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, -# Inc. +# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 +# Free Software Foundation, Inc. -timestamp='2006-07-02' +timestamp='2008-11-15' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -56,8 +56,8 @@ GNU config.guess ($timestamp) Originally written by Per Bothner. -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 -Free Software Foundation, Inc. +Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, +2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." @@ -161,6 +161,7 @@ arm*) machine=arm-unknown ;; sh3el) machine=shl-unknown ;; sh3eb) machine=sh-unknown ;; + sh5el) machine=sh5le-unknown ;; *) machine=${UNAME_MACHINE_ARCH}-unknown ;; esac # The Operating System including object format, if it has switched @@ -329,8 +330,21 @@ sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; - i86pc:SunOS:5.*:*) - echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) + eval $set_cc_for_build + SUN_ARCH="i386" + # If there is a compiler, see if it is configured for 64-bit objects. + # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. + # This test works for both compilers. + if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then + if echo '\n#ifdef __amd64\nIS_64BIT_ARCH\n#endif' | \ + (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_64BIT_ARCH >/dev/null + then + SUN_ARCH="x86_64" + fi + fi + echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:6*:*) # According to config.sub, this is the proper way to canonicalize @@ -531,7 +545,7 @@ echo rs6000-ibm-aix3.2 fi exit ;; - *:AIX:*:[45]) + *:AIX:*:[456]) IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then IBM_ARCH=rs6000 @@ -780,7 +794,7 @@ i*:CYGWIN*:*) echo ${UNAME_MACHINE}-pc-cygwin exit ;; - i*:MINGW*:*) + *:MINGW*:*) echo ${UNAME_MACHINE}-pc-mingw32 exit ;; i*:windows32*:*) @@ -790,12 +804,18 @@ i*:PW*:*) echo ${UNAME_MACHINE}-pc-pw32 exit ;; - x86:Interix*:[3456]*) - echo i586-pc-interix${UNAME_RELEASE} - exit ;; - EM64T:Interix*:[3456]*) - echo x86_64-unknown-interix${UNAME_RELEASE} - exit ;; + *:Interix*:[3456]*) + case ${UNAME_MACHINE} in + x86) + echo i586-pc-interix${UNAME_RELEASE} + exit ;; + EM64T | authenticamd | genuineintel) + echo x86_64-unknown-interix${UNAME_RELEASE} + exit ;; + IA64) + echo ia64-unknown-interix${UNAME_RELEASE} + exit ;; + esac ;; [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) echo i${UNAME_MACHINE}-pc-mks exit ;; @@ -829,7 +849,14 @@ echo ${UNAME_MACHINE}-pc-minix exit ;; arm*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu + eval $set_cc_for_build + if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ARM_EABI__ + then + echo ${UNAME_MACHINE}-unknown-linux-gnu + else + echo ${UNAME_MACHINE}-unknown-linux-gnueabi + fi exit ;; avr32*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu @@ -921,6 +948,9 @@ if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} exit ;; + padre:Linux:*:*) + echo sparc-unknown-linux-gnu + exit ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in @@ -950,6 +980,9 @@ x86_64:Linux:*:*) echo x86_64-unknown-linux-gnu exit ;; + xtensa*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; i*86:Linux:*:*) # The BFD linker knows what the default object file format is, so # first see if it will tell us. cd to the root directory to prevent @@ -968,9 +1001,6 @@ a.out-i386-linux) echo "${UNAME_MACHINE}-pc-linux-gnuaout" exit ;; - coff-i386) - echo "${UNAME_MACHINE}-pc-linux-gnucoff" - exit ;; "") # Either a pre-BFD a.out linker (linux-gnuoldld) or # one that does not give us useful --help. @@ -1199,6 +1229,9 @@ BePC:BeOS:*:*) # BeOS running on Intel PC compatible. echo i586-pc-beos exit ;; + BePC:Haiku:*:*) # Haiku running on Intel PC compatible. + echo i586-pc-haiku + exit ;; SX-4:SUPER-UX:*:*) echo sx4-nec-superux${UNAME_RELEASE} exit ;; @@ -1208,6 +1241,15 @@ SX-6:SUPER-UX:*:*) echo sx6-nec-superux${UNAME_RELEASE} exit ;; + SX-7:SUPER-UX:*:*) + echo sx7-nec-superux${UNAME_RELEASE} + exit ;; + SX-8:SUPER-UX:*:*) + echo sx8-nec-superux${UNAME_RELEASE} + exit ;; + SX-8R:SUPER-UX:*:*) + echo sx8r-nec-superux${UNAME_RELEASE} + exit ;; Power*:Rhapsody:*:*) echo powerpc-apple-rhapsody${UNAME_RELEASE} exit ;; @@ -1458,9 +1500,9 @@ the operating system you are using. It is advised that you download the most up to date version of the config scripts from - http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.guess + http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD and - http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.sub + http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD If the version you run ($0) is already up to date, please send the following data and any information you think might be Modified: branches/gsoc2008-maciekd/Tools/config/config.sub =================================================================== --- branches/gsoc2008-maciekd/Tools/config/config.sub 2009-04-09 17:51:59 UTC (rev 11185) +++ branches/gsoc2008-maciekd/Tools/config/config.sub 2009-04-11 10:46:13 UTC (rev 11186) @@ -1,10 +1,10 @@ #! /bin/sh # Configuration validation subroutine script. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -# 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, -# Inc. +# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 +# Free Software Foundation, Inc. -timestamp='2006-09-20' +timestamp='2008-09-08' # This file is (in principle) common to ALL GNU software. # The presence of a machine in this file suggests that SOME GNU software @@ -72,8 +72,8 @@ version="\ GNU config.sub ($timestamp) -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 -Free Software Foundation, Inc. +Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, +2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." @@ -245,17 +245,19 @@ | bfin \ | c4x | clipper \ | d10v | d30v | dlx | dsp16xx \ - | fr30 | frv \ + | fido | fr30 | frv \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | i370 | i860 | i960 | ia64 \ | ip2k | iq2000 \ | m32c | m32r | m32rle | m68000 | m68k | m88k \ - | maxq | mb | microblaze | mcore \ + | maxq | mb | microblaze | mcore | mep | metag \ | mips | mipsbe | mipseb | mipsel | mipsle \ | mips16 \ | mips64 | mips64el \ + | mips64octeon | mips64octeonel \ + | mips64orion | mips64orionel \ + | mips64r5900 | mips64r5900el \ | mips64vr | mips64vrel \ - | mips64orion | mips64orionel \ | mips64vr4100 | mips64vr4100el \ | mips64vr4300 | mips64vr4300el \ | mips64vr5000 | mips64vr5000el \ @@ -286,7 +288,7 @@ | v850 | v850e \ | we32k \ | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ - | z8k) + | z8k | z80) basic_machine=$basic_machine-unknown ;; m6811 | m68hc11 | m6812 | m68hc12) @@ -324,19 +326,21 @@ | clipper-* | craynv-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ | elxsi-* \ - | f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \ + | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ | h8300-* | h8500-* \ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ | i*86-* | i860-* | i960-* | ia64-* \ | ip2k-* | iq2000-* \ | m32c-* | m32r-* | m32rle-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ - | m88110-* | m88k-* | maxq-* | mcore-* \ + | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ | mips16-* \ | mips64-* | mips64el-* \ + | mips64octeon-* | mips64octeonel-* \ + | mips64orion-* | mips64orionel-* \ + | mips64r5900-* | mips64r5900el-* \ | mips64vr-* | mips64vrel-* \ - | mips64orion-* | mips64orionel-* \ | mips64vr4100-* | mips64vr4100el-* \ | mips64vr4300-* | mips64vr4300el-* \ | mips64vr5000-* | mips64vr5000el-* \ @@ -364,15 +368,19 @@ | sparclite-* \ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ | tahoe-* | thumb-* \ - | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ + | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* | tile-* \ | tron-* \ | v850-* | v850e-* | vax-* \ | we32k-* \ | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ - | xstormy16-* | xtensa-* \ + | xstormy16-* | xtensa*-* \ | ymp-* \ - | z8k-*) + | z8k-* | z80-*) ;; + # Recognize the basic CPU types without company name, with glob match. + xtensa*) + basic_machine=$basic_machine-unknown + ;; # Recognize the various machine names and aliases which stand # for a CPU type and a company and sometimes even an OS. 386bsd) @@ -443,10 +451,22 @@ basic_machine=ns32k-sequent os=-dynix ;; + blackfin) + basic_machine=bfin-unknown + os=-linux + ;; + blackfin-*) + basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` + os=-linux + ;; c90) basic_machine=c90-cray os=-unicos ;; + cegcc) + basic_machine=arm-unknown + os=-cegcc + ;; convex-c1) basic_machine=c1-convex os=-bsd @@ -475,8 +495,8 @@ basic_machine=craynv-cray os=-unicosmp ;; - cr16c) - basic_machine=cr16c-unknown + cr16) + basic_machine=cr16-unknown os=-elf ;; crds | unos) @@ -514,6 +534,10 @@ basic_machine=m88k-motorola os=-sysv3 ;; + dicos) + basic_machine=i686-pc + os=-dicos + ;; djgpp) basic_machine=i586-pc os=-msdosdjgpp @@ -668,6 +692,14 @@ basic_machine=m68k-isi os=-sysv ;; + m68knommu) + basic_machine=m68k-unknown + os=-linux + ;; + m68knommu-*) + basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` + os=-linux + ;; m88k-omron*) basic_machine=m88k-omron ;; @@ -683,6 +715,10 @@ basic_machine=i386-pc os=-mingw32 ;; + mingw32ce) + basic_machine=arm-unknown + os=-mingw32ce + ;; miniframe) basic_machine=m68000-convergent ;; @@ -809,6 +845,14 @@ basic_machine=i860-intel os=-osf ;; + parisc) + basic_machine=hppa-unknown + os=-linux + ;; + parisc-*) + basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` + os=-linux + ;; pbd) basic_machine=sparc-tti ;; @@ -925,6 +969,9 @@ basic_machine=sh-hitachi os=-hms ;; + sh5el) + basic_machine=sh5le-unknown + ;; sh64) basic_machine=sh64-unknown ;; @@ -1014,6 +1061,10 @@ basic_machine=tic6x-unknown os=-coff ;; + tile*) + basic_machine=tile-unknown + os=-linux-gnu + ;; tx39) basic_machine=mipstx39-unknown ;; @@ -1089,6 +1140,10 @@ basic_machine=z8k-unknown os=-sim ;; + z80-*-coff) + basic_machine=z80-unknown + os=-sim + ;; none) basic_machine=none-none os=-none @@ -1209,7 +1264,7 @@ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ - | -chorusos* | -chorusrdb* \ + | -chorusos* | -chorusrdb* | -cegcc* \ | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \ | -uxpv* | -beos* | -mpeix* | -udk* \ @@ -1219,7 +1274,7 @@ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ - | -skyos* | -haiku* | -rdos* | -toppers*) + | -skyos* | -haiku* | -rdos* | -toppers* | -drops*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) @@ -1349,6 +1404,9 @@ -zvmoe) os=-zvmoe ;; + -dicos*) + os=-dicos + ;; -none) ;; *) @@ -1414,6 +1472,9 @@ m68*-cisco) os=-aout ;; + mep-*) + os=-elf + ;; mips*-cisco) os=-elf ;; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ma...@us...> - 2009-04-11 16:47:02
|
Revision: 11187 http://swig.svn.sourceforge.net/swig/?rev=11187&view=rev Author: maciekd Date: 2009-04-11 16:46:47 +0000 (Sat, 11 Apr 2009) Log Message: ----------- Merged with recent changes from trunk. Modified Paths: -------------- branches/gsoc2008-maciekd/ANNOUNCE branches/gsoc2008-maciekd/CHANGES branches/gsoc2008-maciekd/CHANGES.current branches/gsoc2008-maciekd/Doc/Manual/Allegrocl.html branches/gsoc2008-maciekd/Doc/Manual/CSharp.html branches/gsoc2008-maciekd/Doc/Manual/Chicken.html branches/gsoc2008-maciekd/Doc/Manual/Contents.html branches/gsoc2008-maciekd/Doc/Manual/Customization.html branches/gsoc2008-maciekd/Doc/Manual/Extending.html branches/gsoc2008-maciekd/Doc/Manual/Guile.html branches/gsoc2008-maciekd/Doc/Manual/Introduction.html branches/gsoc2008-maciekd/Doc/Manual/Java.html branches/gsoc2008-maciekd/Doc/Manual/Library.html branches/gsoc2008-maciekd/Doc/Manual/Lisp.html branches/gsoc2008-maciekd/Doc/Manual/Lua.html branches/gsoc2008-maciekd/Doc/Manual/Makefile branches/gsoc2008-maciekd/Doc/Manual/Modula3.html branches/gsoc2008-maciekd/Doc/Manual/Modules.html branches/gsoc2008-maciekd/Doc/Manual/Mzscheme.html branches/gsoc2008-maciekd/Doc/Manual/Ocaml.html branches/gsoc2008-maciekd/Doc/Manual/Octave.html branches/gsoc2008-maciekd/Doc/Manual/Perl5.html branches/gsoc2008-maciekd/Doc/Manual/Php.html branches/gsoc2008-maciekd/Doc/Manual/Pike.html branches/gsoc2008-maciekd/Doc/Manual/Preprocessor.html branches/gsoc2008-maciekd/Doc/Manual/Python.html branches/gsoc2008-maciekd/Doc/Manual/R.html branches/gsoc2008-maciekd/Doc/Manual/Ruby.html branches/gsoc2008-maciekd/Doc/Manual/SWIG.html branches/gsoc2008-maciekd/Doc/Manual/Sections.html branches/gsoc2008-maciekd/Doc/Manual/Tcl.html branches/gsoc2008-maciekd/Doc/Manual/Typemaps.html branches/gsoc2008-maciekd/Doc/Manual/Warnings.html branches/gsoc2008-maciekd/Doc/Manual/Windows.html branches/gsoc2008-maciekd/Doc/Manual/chapters branches/gsoc2008-maciekd/Doc/README branches/gsoc2008-maciekd/Examples/GIFPlot/Java/full/README branches/gsoc2008-maciekd/Examples/GIFPlot/Java/shadow/Makefile branches/gsoc2008-maciekd/Examples/GIFPlot/Java/shadow/README branches/gsoc2008-maciekd/Examples/GIFPlot/Java/simple/README branches/gsoc2008-maciekd/Examples/GIFPlot/Lib/color.c branches/gsoc2008-maciekd/Examples/GIFPlot/Lib/gif.c branches/gsoc2008-maciekd/Examples/GIFPlot/Perl5/shadow/Makefile branches/gsoc2008-maciekd/Examples/GIFPlot/Python/full/Makefile branches/gsoc2008-maciekd/Examples/GIFPlot/Python/shadow/Makefile branches/gsoc2008-maciekd/Examples/GIFPlot/Python/simple/Makefile branches/gsoc2008-maciekd/Examples/GIFPlot/Ruby/shadow/Makefile branches/gsoc2008-maciekd/Examples/Makefile.in branches/gsoc2008-maciekd/Examples/csharp/check.list branches/gsoc2008-maciekd/Examples/java/class/index.html branches/gsoc2008-maciekd/Examples/java/constants/index.html branches/gsoc2008-maciekd/Examples/java/enum/index.html branches/gsoc2008-maciekd/Examples/java/funcptr/index.html branches/gsoc2008-maciekd/Examples/java/index.html branches/gsoc2008-maciekd/Examples/java/native/index.html branches/gsoc2008-maciekd/Examples/java/pointer/index.html branches/gsoc2008-maciekd/Examples/java/reference/index.html branches/gsoc2008-maciekd/Examples/java/simple/index.html branches/gsoc2008-maciekd/Examples/java/template/index.html branches/gsoc2008-maciekd/Examples/java/typemap/index.html branches/gsoc2008-maciekd/Examples/java/variables/index.html branches/gsoc2008-maciekd/Examples/lua/embed3/embed3.cpp branches/gsoc2008-maciekd/Examples/perl5/class/example.dsp branches/gsoc2008-maciekd/Examples/perl5/import/bar.dsp branches/gsoc2008-maciekd/Examples/perl5/import/base.dsp branches/gsoc2008-maciekd/Examples/perl5/import/foo.dsp branches/gsoc2008-maciekd/Examples/perl5/import/spam.dsp branches/gsoc2008-maciekd/Examples/perl5/multimap/example.dsp branches/gsoc2008-maciekd/Examples/perl5/simple/example.dsp branches/gsoc2008-maciekd/Examples/python/callback/Makefile branches/gsoc2008-maciekd/Examples/python/class/Makefile branches/gsoc2008-maciekd/Examples/python/class/example.dsp branches/gsoc2008-maciekd/Examples/python/class/example.i branches/gsoc2008-maciekd/Examples/python/constants/Makefile branches/gsoc2008-maciekd/Examples/python/contract/Makefile branches/gsoc2008-maciekd/Examples/python/contract/example.dsp branches/gsoc2008-maciekd/Examples/python/docstrings/Makefile branches/gsoc2008-maciekd/Examples/python/enum/Makefile branches/gsoc2008-maciekd/Examples/python/exception/Makefile branches/gsoc2008-maciekd/Examples/python/exceptproxy/Makefile branches/gsoc2008-maciekd/Examples/python/extend/Makefile branches/gsoc2008-maciekd/Examples/python/funcptr/Makefile branches/gsoc2008-maciekd/Examples/python/funcptr2/Makefile branches/gsoc2008-maciekd/Examples/python/functor/Makefile branches/gsoc2008-maciekd/Examples/python/import/Makefile branches/gsoc2008-maciekd/Examples/python/import/bar.dsp branches/gsoc2008-maciekd/Examples/python/import/base.dsp branches/gsoc2008-maciekd/Examples/python/import/foo.dsp branches/gsoc2008-maciekd/Examples/python/import/spam.dsp branches/gsoc2008-maciekd/Examples/python/import_template/Makefile branches/gsoc2008-maciekd/Examples/python/libffi/Makefile branches/gsoc2008-maciekd/Examples/python/multimap/Makefile branches/gsoc2008-maciekd/Examples/python/multimap/example.dsp branches/gsoc2008-maciekd/Examples/python/multimap/example.i branches/gsoc2008-maciekd/Examples/python/operator/Makefile branches/gsoc2008-maciekd/Examples/python/pointer/Makefile branches/gsoc2008-maciekd/Examples/python/reference/Makefile branches/gsoc2008-maciekd/Examples/python/simple/Makefile branches/gsoc2008-maciekd/Examples/python/simple/example.dsp branches/gsoc2008-maciekd/Examples/python/smartptr/Makefile branches/gsoc2008-maciekd/Examples/python/std_map/Makefile branches/gsoc2008-maciekd/Examples/python/std_map/example.i branches/gsoc2008-maciekd/Examples/python/std_vector/Makefile branches/gsoc2008-maciekd/Examples/python/swigrun/Makefile branches/gsoc2008-maciekd/Examples/python/template/Makefile branches/gsoc2008-maciekd/Examples/python/varargs/Makefile branches/gsoc2008-maciekd/Examples/python/variables/Makefile branches/gsoc2008-maciekd/Examples/python/weave/Makefile branches/gsoc2008-maciekd/Examples/r/class/example.dsp branches/gsoc2008-maciekd/Examples/r/simple/example.dsp branches/gsoc2008-maciekd/Examples/ruby/class/example.dsp branches/gsoc2008-maciekd/Examples/ruby/free_function/example.dsp branches/gsoc2008-maciekd/Examples/ruby/free_function/example.i branches/gsoc2008-maciekd/Examples/ruby/import/bar.dsp branches/gsoc2008-maciekd/Examples/ruby/import/base.dsp branches/gsoc2008-maciekd/Examples/ruby/import/foo.dsp branches/gsoc2008-maciekd/Examples/ruby/import/spam.dsp branches/gsoc2008-maciekd/Examples/ruby/mark_function/example.dsp branches/gsoc2008-maciekd/Examples/ruby/multimap/example.dsp branches/gsoc2008-maciekd/Examples/ruby/simple/example.dsp branches/gsoc2008-maciekd/Examples/ruby/std_vector/runme.rb branches/gsoc2008-maciekd/Examples/tcl/class/example.dsp branches/gsoc2008-maciekd/Examples/tcl/contract/example.dsp branches/gsoc2008-maciekd/Examples/tcl/import/bar.dsp branches/gsoc2008-maciekd/Examples/tcl/import/base.dsp branches/gsoc2008-maciekd/Examples/tcl/import/foo.dsp branches/gsoc2008-maciekd/Examples/tcl/import/spam.dsp branches/gsoc2008-maciekd/Examples/tcl/multimap/example.dsp branches/gsoc2008-maciekd/Examples/tcl/simple/example.dsp branches/gsoc2008-maciekd/Examples/test-suite/abstract_virtual.i branches/gsoc2008-maciekd/Examples/test-suite/allegrocl/Makefile.in branches/gsoc2008-maciekd/Examples/test-suite/allowexcept.i branches/gsoc2008-maciekd/Examples/test-suite/char_strings.i branches/gsoc2008-maciekd/Examples/test-suite/chicken/Makefile.in branches/gsoc2008-maciekd/Examples/test-suite/common.mk branches/gsoc2008-maciekd/Examples/test-suite/contract.i branches/gsoc2008-maciekd/Examples/test-suite/csharp/Makefile.in branches/gsoc2008-maciekd/Examples/test-suite/csharp/li_boost_shared_ptr_runme.cs branches/gsoc2008-maciekd/Examples/test-suite/csharp/li_std_vector_runme.cs branches/gsoc2008-maciekd/Examples/test-suite/csharp_prepost.i branches/gsoc2008-maciekd/Examples/test-suite/default_constructor.i branches/gsoc2008-maciekd/Examples/test-suite/director_basic.i branches/gsoc2008-maciekd/Examples/test-suite/director_thread.i branches/gsoc2008-maciekd/Examples/test-suite/evil_diamond.i branches/gsoc2008-maciekd/Examples/test-suite/evil_diamond_ns.i branches/gsoc2008-maciekd/Examples/test-suite/evil_diamond_prop.i branches/gsoc2008-maciekd/Examples/test-suite/features.i branches/gsoc2008-maciekd/Examples/test-suite/guile/Makefile.in branches/gsoc2008-maciekd/Examples/test-suite/guilescm/Makefile.in branches/gsoc2008-maciekd/Examples/test-suite/ignore_template_constructor.i branches/gsoc2008-maciekd/Examples/test-suite/import_nomodule.i branches/gsoc2008-maciekd/Examples/test-suite/imports_b.i branches/gsoc2008-maciekd/Examples/test-suite/intermediary_classname.i branches/gsoc2008-maciekd/Examples/test-suite/java/Makefile.in branches/gsoc2008-maciekd/Examples/test-suite/java/director_basic_runme.java branches/gsoc2008-maciekd/Examples/test-suite/java/java_throws_runme.java branches/gsoc2008-maciekd/Examples/test-suite/java/li_boost_shared_ptr_runme.java branches/gsoc2008-maciekd/Examples/test-suite/java_throws.i branches/gsoc2008-maciekd/Examples/test-suite/li_attribute.i branches/gsoc2008-maciekd/Examples/test-suite/li_boost_shared_ptr.i branches/gsoc2008-maciekd/Examples/test-suite/li_cstring.i branches/gsoc2008-maciekd/Examples/test-suite/li_cwstring.i branches/gsoc2008-maciekd/Examples/test-suite/li_std_map.i branches/gsoc2008-maciekd/Examples/test-suite/li_std_set.i branches/gsoc2008-maciekd/Examples/test-suite/li_std_vector.i branches/gsoc2008-maciekd/Examples/test-suite/minherit2.i branches/gsoc2008-maciekd/Examples/test-suite/multiple_inheritance.i branches/gsoc2008-maciekd/Examples/test-suite/name_warnings.i branches/gsoc2008-maciekd/Examples/test-suite/namespace_typemap.i branches/gsoc2008-maciekd/Examples/test-suite/nested_comment.i branches/gsoc2008-maciekd/Examples/test-suite/ocaml/Makefile.in branches/gsoc2008-maciekd/Examples/test-suite/octave/Makefile.in branches/gsoc2008-maciekd/Examples/test-suite/octave/li_attribute_runme.m branches/gsoc2008-maciekd/Examples/test-suite/operator_overload.i branches/gsoc2008-maciekd/Examples/test-suite/packageoption.h branches/gsoc2008-maciekd/Examples/test-suite/packageoption.list branches/gsoc2008-maciekd/Examples/test-suite/packageoption_a.i branches/gsoc2008-maciekd/Examples/test-suite/packageoption_b.i branches/gsoc2008-maciekd/Examples/test-suite/perl5/char_strings_runme.pl branches/gsoc2008-maciekd/Examples/test-suite/perl5/li_typemaps_runme.pl branches/gsoc2008-maciekd/Examples/test-suite/perl5/packageoption_runme.pl branches/gsoc2008-maciekd/Examples/test-suite/preproc.i branches/gsoc2008-maciekd/Examples/test-suite/pure_virtual.i branches/gsoc2008-maciekd/Examples/test-suite/python/Makefile.in branches/gsoc2008-maciekd/Examples/test-suite/python/README branches/gsoc2008-maciekd/Examples/test-suite/python/contract_runme.py branches/gsoc2008-maciekd/Examples/test-suite/python/cpp_namespace_runme.py branches/gsoc2008-maciekd/Examples/test-suite/python/director_classic_runme.py branches/gsoc2008-maciekd/Examples/test-suite/python/director_exception_runme.py branches/gsoc2008-maciekd/Examples/test-suite/python/director_thread_runme.py branches/gsoc2008-maciekd/Examples/test-suite/python/file_test_runme.py branches/gsoc2008-maciekd/Examples/test-suite/python/hugemod.pl branches/gsoc2008-maciekd/Examples/test-suite/python/li_attribute_runme.py branches/gsoc2008-maciekd/Examples/test-suite/python/li_boost_shared_ptr_runme.py branches/gsoc2008-maciekd/Examples/test-suite/python/swigobject_runme.py branches/gsoc2008-maciekd/Examples/test-suite/python/template_typedef_cplx2_runme.py branches/gsoc2008-maciekd/Examples/test-suite/python/template_typedef_cplx_runme.py branches/gsoc2008-maciekd/Examples/test-suite/r/Makefile.in branches/gsoc2008-maciekd/Examples/test-suite/ruby/Makefile.in branches/gsoc2008-maciekd/Examples/test-suite/swig_examples_lock.h branches/gsoc2008-maciekd/Examples/test-suite/tcl/Makefile.in branches/gsoc2008-maciekd/Examples/test-suite/template_inherit_abstract.i branches/gsoc2008-maciekd/Examples/test-suite/template_typedef_funcptr.i branches/gsoc2008-maciekd/Examples/test-suite/typemap_namespace.i branches/gsoc2008-maciekd/Examples/test-suite/types_directive.i branches/gsoc2008-maciekd/Examples/test-suite/using_composition.i branches/gsoc2008-maciekd/Examples/test-suite/using_extend.i branches/gsoc2008-maciekd/Examples/test-suite/using_namespace.i branches/gsoc2008-maciekd/Lib/allegrocl/allegrocl.swg branches/gsoc2008-maciekd/Lib/allkw.swg branches/gsoc2008-maciekd/Lib/cdata.i branches/gsoc2008-maciekd/Lib/chicken/chicken.swg branches/gsoc2008-maciekd/Lib/chicken/chickenrun.swg branches/gsoc2008-maciekd/Lib/csharp/boost_shared_ptr.i branches/gsoc2008-maciekd/Lib/csharp/csharp.swg branches/gsoc2008-maciekd/Lib/csharp/std_vector.i branches/gsoc2008-maciekd/Lib/java/boost_shared_ptr.i branches/gsoc2008-maciekd/Lib/java/java.swg branches/gsoc2008-maciekd/Lib/java/javahead.swg branches/gsoc2008-maciekd/Lib/java/std_vector.i branches/gsoc2008-maciekd/Lib/lua/luatypemaps.swg branches/gsoc2008-maciekd/Lib/ocaml/std_deque.i branches/gsoc2008-maciekd/Lib/octave/carrays.i branches/gsoc2008-maciekd/Lib/octave/octcontainer.swg branches/gsoc2008-maciekd/Lib/octave/octopers.swg branches/gsoc2008-maciekd/Lib/octave/octrun.swg branches/gsoc2008-maciekd/Lib/octave/octruntime.swg branches/gsoc2008-maciekd/Lib/octave/octstdcommon.swg branches/gsoc2008-maciekd/Lib/octave/std_basic_string.i branches/gsoc2008-maciekd/Lib/octave/std_carray.i branches/gsoc2008-maciekd/Lib/octave/std_map.i branches/gsoc2008-maciekd/Lib/perl5/noembed.h branches/gsoc2008-maciekd/Lib/perl5/perlrun.swg branches/gsoc2008-maciekd/Lib/perl5/perlstrings.swg branches/gsoc2008-maciekd/Lib/perl5/perltypemaps.swg branches/gsoc2008-maciekd/Lib/perl5/std_vector.i branches/gsoc2008-maciekd/Lib/python/boost_shared_ptr.i branches/gsoc2008-maciekd/Lib/python/director.swg branches/gsoc2008-maciekd/Lib/python/file.i branches/gsoc2008-maciekd/Lib/python/pyapi.swg branches/gsoc2008-maciekd/Lib/python/pyclasses.swg branches/gsoc2008-maciekd/Lib/python/pycontainer.swg branches/gsoc2008-maciekd/Lib/python/pyerrors.swg branches/gsoc2008-maciekd/Lib/python/pyhead.swg branches/gsoc2008-maciekd/Lib/python/pyinit.swg branches/gsoc2008-maciekd/Lib/python/pyiterators.swg branches/gsoc2008-maciekd/Lib/python/pyopers.swg branches/gsoc2008-maciekd/Lib/python/pyrun.swg branches/gsoc2008-maciekd/Lib/python/pystdcommon.swg branches/gsoc2008-maciekd/Lib/python/pystrings.swg branches/gsoc2008-maciekd/Lib/python/pytypemaps.swg branches/gsoc2008-maciekd/Lib/python/pywstrings.swg branches/gsoc2008-maciekd/Lib/python/std_carray.i branches/gsoc2008-maciekd/Lib/python/std_map.i branches/gsoc2008-maciekd/Lib/python/std_multimap.i branches/gsoc2008-maciekd/Lib/python/std_multiset.i branches/gsoc2008-maciekd/Lib/python/std_pair.i branches/gsoc2008-maciekd/Lib/python/std_set.i branches/gsoc2008-maciekd/Lib/r/r.swg branches/gsoc2008-maciekd/Lib/r/rrun.swg branches/gsoc2008-maciekd/Lib/r/rstdcommon.swg branches/gsoc2008-maciekd/Lib/r/rtype.swg branches/gsoc2008-maciekd/Lib/ruby/file.i branches/gsoc2008-maciekd/Lib/ruby/rubyhead.swg branches/gsoc2008-maciekd/Lib/ruby/rubywstrings.swg branches/gsoc2008-maciekd/Lib/shared_ptr.i branches/gsoc2008-maciekd/Lib/swig.swg branches/gsoc2008-maciekd/Lib/swigrun.swg branches/gsoc2008-maciekd/Lib/typemaps/attribute.swg branches/gsoc2008-maciekd/Lib/typemaps/swigtype.swg branches/gsoc2008-maciekd/Makefile.in branches/gsoc2008-maciekd/README branches/gsoc2008-maciekd/Source/CParse/cparse.h branches/gsoc2008-maciekd/Source/CParse/cscanner.c branches/gsoc2008-maciekd/Source/CParse/parser.y branches/gsoc2008-maciekd/Source/CParse/templ.c branches/gsoc2008-maciekd/Source/DOH/README branches/gsoc2008-maciekd/Source/DOH/base.c branches/gsoc2008-maciekd/Source/DOH/doh.h branches/gsoc2008-maciekd/Source/DOH/file.c branches/gsoc2008-maciekd/Source/DOH/hash.c branches/gsoc2008-maciekd/Source/DOH/list.c branches/gsoc2008-maciekd/Source/DOH/string.c branches/gsoc2008-maciekd/Source/Include/swigwarn.h branches/gsoc2008-maciekd/Source/Makefile.am branches/gsoc2008-maciekd/Source/Modules/allegrocl.cxx branches/gsoc2008-maciekd/Source/Modules/cffi.cxx branches/gsoc2008-maciekd/Source/Modules/chicken.cxx branches/gsoc2008-maciekd/Source/Modules/clisp.cxx branches/gsoc2008-maciekd/Source/Modules/contract.cxx branches/gsoc2008-maciekd/Source/Modules/csharp.cxx branches/gsoc2008-maciekd/Source/Modules/directors.cxx branches/gsoc2008-maciekd/Source/Modules/guile.cxx branches/gsoc2008-maciekd/Source/Modules/java.cxx branches/gsoc2008-maciekd/Source/Modules/lang.cxx branches/gsoc2008-maciekd/Source/Modules/lua.cxx branches/gsoc2008-maciekd/Source/Modules/main.cxx branches/gsoc2008-maciekd/Source/Modules/modula3.cxx branches/gsoc2008-maciekd/Source/Modules/mzscheme.cxx branches/gsoc2008-maciekd/Source/Modules/ocaml.cxx branches/gsoc2008-maciekd/Source/Modules/octave.cxx branches/gsoc2008-maciekd/Source/Modules/overload.cxx branches/gsoc2008-maciekd/Source/Modules/perl5.cxx branches/gsoc2008-maciekd/Source/Modules/pike.cxx branches/gsoc2008-maciekd/Source/Modules/python.cxx branches/gsoc2008-maciekd/Source/Modules/r.cxx branches/gsoc2008-maciekd/Source/Modules/ruby.cxx branches/gsoc2008-maciekd/Source/Modules/s-exp.cxx branches/gsoc2008-maciekd/Source/Modules/swigmain.cxx branches/gsoc2008-maciekd/Source/Modules/swigmod.h branches/gsoc2008-maciekd/Source/Modules/tcl8.cxx branches/gsoc2008-maciekd/Source/Modules/uffi.cxx branches/gsoc2008-maciekd/Source/Modules/xml.cxx branches/gsoc2008-maciekd/Source/Preprocessor/cpp.c branches/gsoc2008-maciekd/Source/Preprocessor/preprocessor.h branches/gsoc2008-maciekd/Source/README branches/gsoc2008-maciekd/Source/Swig/cwrap.c branches/gsoc2008-maciekd/Source/Swig/error.c branches/gsoc2008-maciekd/Source/Swig/getopt.c branches/gsoc2008-maciekd/Source/Swig/include.c branches/gsoc2008-maciekd/Source/Swig/misc.c branches/gsoc2008-maciekd/Source/Swig/naming.c branches/gsoc2008-maciekd/Source/Swig/parms.c branches/gsoc2008-maciekd/Source/Swig/scanner.c branches/gsoc2008-maciekd/Source/Swig/stype.c branches/gsoc2008-maciekd/Source/Swig/swig.h branches/gsoc2008-maciekd/Source/Swig/swigfile.h branches/gsoc2008-maciekd/Source/Swig/swigopt.h branches/gsoc2008-maciekd/Source/Swig/swigparm.h branches/gsoc2008-maciekd/Source/Swig/swigscan.h branches/gsoc2008-maciekd/Source/Swig/swigtree.h branches/gsoc2008-maciekd/Source/Swig/swigwrap.h branches/gsoc2008-maciekd/Source/Swig/symbol.c branches/gsoc2008-maciekd/Source/Swig/tree.c branches/gsoc2008-maciekd/Source/Swig/typemap.c branches/gsoc2008-maciekd/Source/Swig/typeobj.c branches/gsoc2008-maciekd/Source/Swig/typesys.c branches/gsoc2008-maciekd/Source/Swig/wrapfunc.c branches/gsoc2008-maciekd/TODO branches/gsoc2008-maciekd/Tools/mkdist.py branches/gsoc2008-maciekd/Tools/mkrelease.py branches/gsoc2008-maciekd/Tools/mkwindows.sh branches/gsoc2008-maciekd/autogen.sh branches/gsoc2008-maciekd/configure.in Added Paths: ----------- branches/gsoc2008-maciekd/CCache/ branches/gsoc2008-maciekd/CCache/COPYING branches/gsoc2008-maciekd/CCache/Makefile.in branches/gsoc2008-maciekd/CCache/README branches/gsoc2008-maciekd/CCache/README.swig branches/gsoc2008-maciekd/CCache/args.c branches/gsoc2008-maciekd/CCache/ccache.c branches/gsoc2008-maciekd/CCache/ccache.h branches/gsoc2008-maciekd/CCache/ccache.yo branches/gsoc2008-maciekd/CCache/ccache_swig_config.h.in branches/gsoc2008-maciekd/CCache/cleanup.c branches/gsoc2008-maciekd/CCache/configure.in branches/gsoc2008-maciekd/CCache/debian/ branches/gsoc2008-maciekd/CCache/debian/NEWS branches/gsoc2008-maciekd/CCache/debian/README.Debian branches/gsoc2008-maciekd/CCache/debian/changelog branches/gsoc2008-maciekd/CCache/debian/compat branches/gsoc2008-maciekd/CCache/debian/control branches/gsoc2008-maciekd/CCache/debian/copyright branches/gsoc2008-maciekd/CCache/debian/dirs branches/gsoc2008-maciekd/CCache/debian/docs branches/gsoc2008-maciekd/CCache/debian/examples branches/gsoc2008-maciekd/CCache/debian/patches/ branches/gsoc2008-maciekd/CCache/debian/patches/01_no_home.diff branches/gsoc2008-maciekd/CCache/debian/patches/02_ccache-compressed.diff branches/gsoc2008-maciekd/CCache/debian/patches/03_long_options.diff branches/gsoc2008-maciekd/CCache/debian/patches/04_ignore_profile.diff branches/gsoc2008-maciekd/CCache/debian/patches/05_nfs_fix.diff branches/gsoc2008-maciekd/CCache/debian/patches/06_md.diff branches/gsoc2008-maciekd/CCache/debian/patches/07_cachedirtag.diff branches/gsoc2008-maciekd/CCache/debian/patches/08_manpage_hyphens.diff branches/gsoc2008-maciekd/CCache/debian/patches/09_respect_ldflags.diff branches/gsoc2008-maciekd/CCache/debian/patches/10_lru_cleanup.diff branches/gsoc2008-maciekd/CCache/debian/patches/11_utimes.diff branches/gsoc2008-maciekd/CCache/debian/patches/12_cachesize_permissions.diff branches/gsoc2008-maciekd/CCache/debian/patches/13_html_links.diff branches/gsoc2008-maciekd/CCache/debian/patches/14_hardlink_doc.diff branches/gsoc2008-maciekd/CCache/debian/patches/CREDITS branches/gsoc2008-maciekd/CCache/debian/rules branches/gsoc2008-maciekd/CCache/debian/update-ccache branches/gsoc2008-maciekd/CCache/debian/watch branches/gsoc2008-maciekd/CCache/execute.c branches/gsoc2008-maciekd/CCache/hash.c branches/gsoc2008-maciekd/CCache/install-sh branches/gsoc2008-maciekd/CCache/mdfour.c branches/gsoc2008-maciekd/CCache/mdfour.h branches/gsoc2008-maciekd/CCache/packaging/ branches/gsoc2008-maciekd/CCache/packaging/README branches/gsoc2008-maciekd/CCache/packaging/ccache.spec branches/gsoc2008-maciekd/CCache/snprintf.c branches/gsoc2008-maciekd/CCache/stats.c branches/gsoc2008-maciekd/CCache/test.sh branches/gsoc2008-maciekd/CCache/unify.c branches/gsoc2008-maciekd/CCache/util.c branches/gsoc2008-maciekd/CCache/web/ branches/gsoc2008-maciekd/CCache/web/index.html branches/gsoc2008-maciekd/Doc/Manual/C.html branches/gsoc2008-maciekd/Examples/GIFPlot/Java/full/runme.java branches/gsoc2008-maciekd/Examples/GIFPlot/Java/shadow/runme.java branches/gsoc2008-maciekd/Examples/GIFPlot/Java/simple/runme.java branches/gsoc2008-maciekd/Examples/GIFPlot/Php/ branches/gsoc2008-maciekd/Examples/GIFPlot/Php/check.list branches/gsoc2008-maciekd/Examples/GIFPlot/Php/full/ branches/gsoc2008-maciekd/Examples/GIFPlot/Php/full/Makefile branches/gsoc2008-maciekd/Examples/GIFPlot/Php/full/README branches/gsoc2008-maciekd/Examples/GIFPlot/Php/full/cmap branches/gsoc2008-maciekd/Examples/GIFPlot/Php/full/gifplot.i branches/gsoc2008-maciekd/Examples/GIFPlot/Php/full/runme.php branches/gsoc2008-maciekd/Examples/GIFPlot/Php/shadow/ branches/gsoc2008-maciekd/Examples/GIFPlot/Php/shadow/Makefile branches/gsoc2008-maciekd/Examples/GIFPlot/Php/shadow/README branches/gsoc2008-maciekd/Examples/GIFPlot/Php/shadow/cmap branches/gsoc2008-maciekd/Examples/GIFPlot/Php/shadow/runme.php branches/gsoc2008-maciekd/Examples/GIFPlot/Php/simple/ branches/gsoc2008-maciekd/Examples/GIFPlot/Php/simple/Makefile branches/gsoc2008-maciekd/Examples/GIFPlot/Php/simple/README branches/gsoc2008-maciekd/Examples/GIFPlot/Php/simple/runme.php branches/gsoc2008-maciekd/Examples/GIFPlot/Php/simple/simple.i branches/gsoc2008-maciekd/Examples/c/ branches/gsoc2008-maciekd/Examples/c/check.list branches/gsoc2008-maciekd/Examples/c/class/ branches/gsoc2008-maciekd/Examples/c/class/Makefile branches/gsoc2008-maciekd/Examples/c/class/example.cxx branches/gsoc2008-maciekd/Examples/c/class/example.h branches/gsoc2008-maciekd/Examples/c/class/example.i branches/gsoc2008-maciekd/Examples/c/class/runme.c branches/gsoc2008-maciekd/Examples/c/exception/ branches/gsoc2008-maciekd/Examples/c/exception/Makefile branches/gsoc2008-maciekd/Examples/c/exception/example.cxx branches/gsoc2008-maciekd/Examples/c/exception/example.h branches/gsoc2008-maciekd/Examples/c/exception/example.i branches/gsoc2008-maciekd/Examples/c/exception/runme.c branches/gsoc2008-maciekd/Examples/c/simple/ branches/gsoc2008-maciekd/Examples/c/simple/Makefile branches/gsoc2008-maciekd/Examples/c/simple/example.c branches/gsoc2008-maciekd/Examples/c/simple/example.i branches/gsoc2008-maciekd/Examples/c/simple/runme.c branches/gsoc2008-maciekd/Examples/csharp/arrays/ branches/gsoc2008-maciekd/Examples/csharp/arrays/Makefile branches/gsoc2008-maciekd/Examples/csharp/arrays/example.c branches/gsoc2008-maciekd/Examples/csharp/arrays/example.h branches/gsoc2008-maciekd/Examples/csharp/arrays/example.i branches/gsoc2008-maciekd/Examples/csharp/arrays/runme.cs branches/gsoc2008-maciekd/Examples/java/callback/runme.java branches/gsoc2008-maciekd/Examples/java/class/runme.java branches/gsoc2008-maciekd/Examples/java/constants/runme.java branches/gsoc2008-maciekd/Examples/java/enum/runme.java branches/gsoc2008-maciekd/Examples/java/extend/runme.java branches/gsoc2008-maciekd/Examples/java/funcptr/runme.java branches/gsoc2008-maciekd/Examples/java/multimap/runme.java branches/gsoc2008-maciekd/Examples/java/native/runme.java branches/gsoc2008-maciekd/Examples/java/pointer/runme.java branches/gsoc2008-maciekd/Examples/java/reference/runme.java branches/gsoc2008-maciekd/Examples/java/simple/runme.java branches/gsoc2008-maciekd/Examples/java/template/runme.java branches/gsoc2008-maciekd/Examples/java/typemap/runme.java branches/gsoc2008-maciekd/Examples/java/variables/runme.java branches/gsoc2008-maciekd/Examples/php/ branches/gsoc2008-maciekd/Examples/php/check.list branches/gsoc2008-maciekd/Examples/php/class/ branches/gsoc2008-maciekd/Examples/php/class/Makefile branches/gsoc2008-maciekd/Examples/php/class/example.cxx branches/gsoc2008-maciekd/Examples/php/class/example.h branches/gsoc2008-maciekd/Examples/php/class/example.i branches/gsoc2008-maciekd/Examples/php/class/runme.php branches/gsoc2008-maciekd/Examples/php/constants/ branches/gsoc2008-maciekd/Examples/php/constants/Makefile branches/gsoc2008-maciekd/Examples/php/constants/example.i branches/gsoc2008-maciekd/Examples/php/constants/runme.php branches/gsoc2008-maciekd/Examples/php/cpointer/ branches/gsoc2008-maciekd/Examples/php/cpointer/Makefile branches/gsoc2008-maciekd/Examples/php/cpointer/example.c branches/gsoc2008-maciekd/Examples/php/cpointer/example.i branches/gsoc2008-maciekd/Examples/php/cpointer/runme.php branches/gsoc2008-maciekd/Examples/php/disown/ branches/gsoc2008-maciekd/Examples/php/disown/Makefile branches/gsoc2008-maciekd/Examples/php/disown/example.cxx branches/gsoc2008-maciekd/Examples/php/disown/example.h branches/gsoc2008-maciekd/Examples/php/disown/example.i branches/gsoc2008-maciekd/Examples/php/disown/runme.php branches/gsoc2008-maciekd/Examples/php/enum/ branches/gsoc2008-maciekd/Examples/php/enum/Makefile branches/gsoc2008-maciekd/Examples/php/enum/example.cxx branches/gsoc2008-maciekd/Examples/php/enum/example.h branches/gsoc2008-maciekd/Examples/php/enum/example.i branches/gsoc2008-maciekd/Examples/php/enum/runme.php branches/gsoc2008-maciekd/Examples/php/funcptr/ branches/gsoc2008-maciekd/Examples/php/funcptr/Makefile branches/gsoc2008-maciekd/Examples/php/funcptr/example.c branches/gsoc2008-maciekd/Examples/php/funcptr/example.h branches/gsoc2008-maciekd/Examples/php/funcptr/example.i branches/gsoc2008-maciekd/Examples/php/funcptr/runme.php branches/gsoc2008-maciekd/Examples/php/overloading/ branches/gsoc2008-maciekd/Examples/php/overloading/Makefile branches/gsoc2008-maciekd/Examples/php/overloading/example.cxx branches/gsoc2008-maciekd/Examples/php/overloading/example.h branches/gsoc2008-maciekd/Examples/php/overloading/example.i branches/gsoc2008-maciekd/Examples/php/overloading/runme.php branches/gsoc2008-maciekd/Examples/php/pointer/ branches/gsoc2008-maciekd/Examples/php/pointer/Makefile branches/gsoc2008-maciekd/Examples/php/pointer/example.c branches/gsoc2008-maciekd/Examples/php/pointer/example.i branches/gsoc2008-maciekd/Examples/php/pointer/runme.php branches/gsoc2008-maciekd/Examples/php/pragmas/ branches/gsoc2008-maciekd/Examples/php/pragmas/Makefile branches/gsoc2008-maciekd/Examples/php/pragmas/example.i branches/gsoc2008-maciekd/Examples/php/pragmas/include.php branches/gsoc2008-maciekd/Examples/php/pragmas/runme.php branches/gsoc2008-maciekd/Examples/php/proxy/ branches/gsoc2008-maciekd/Examples/php/proxy/Makefile branches/gsoc2008-maciekd/Examples/php/proxy/example.cxx branches/gsoc2008-maciekd/Examples/php/proxy/example.h branches/gsoc2008-maciekd/Examples/php/proxy/example.i branches/gsoc2008-maciekd/Examples/php/proxy/runme.php branches/gsoc2008-maciekd/Examples/php/reference/ branches/gsoc2008-maciekd/Examples/php/reference/Makefile branches/gsoc2008-maciekd/Examples/php/reference/example.cxx branches/gsoc2008-maciekd/Examples/php/reference/example.h branches/gsoc2008-maciekd/Examples/php/reference/example.i branches/gsoc2008-maciekd/Examples/php/reference/runme-proxy.php4 branches/gsoc2008-maciekd/Examples/php/reference/runme.php branches/gsoc2008-maciekd/Examples/php/simple/ branches/gsoc2008-maciekd/Examples/php/simple/Makefile branches/gsoc2008-maciekd/Examples/php/simple/example.c branches/gsoc2008-maciekd/Examples/php/simple/example.i branches/gsoc2008-maciekd/Examples/php/simple/runme.php branches/gsoc2008-maciekd/Examples/php/sync/ branches/gsoc2008-maciekd/Examples/php/sync/Makefile branches/gsoc2008-maciekd/Examples/php/sync/example.cxx branches/gsoc2008-maciekd/Examples/php/sync/example.h branches/gsoc2008-maciekd/Examples/php/sync/example.i branches/gsoc2008-maciekd/Examples/php/sync/runme.php branches/gsoc2008-maciekd/Examples/php/value/ branches/gsoc2008-maciekd/Examples/php/value/Makefile branches/gsoc2008-maciekd/Examples/php/value/example.c branches/gsoc2008-maciekd/Examples/php/value/example.h branches/gsoc2008-maciekd/Examples/php/value/example.i branches/gsoc2008-maciekd/Examples/php/value/runme.php branches/gsoc2008-maciekd/Examples/php/variables/ branches/gsoc2008-maciekd/Examples/php/variables/Makefile branches/gsoc2008-maciekd/Examples/php/variables/example.c branches/gsoc2008-maciekd/Examples/php/variables/example.h branches/gsoc2008-maciekd/Examples/php/variables/example.i branches/gsoc2008-maciekd/Examples/php/variables/runme.php branches/gsoc2008-maciekd/Examples/php/variables/runme.php4.old branches/gsoc2008-maciekd/Examples/test-suite/argcargvtest.i branches/gsoc2008-maciekd/Examples/test-suite/c/ branches/gsoc2008-maciekd/Examples/test-suite/c/Makefile.in branches/gsoc2008-maciekd/Examples/test-suite/c/cast_operator_runme.c branches/gsoc2008-maciekd/Examples/test-suite/c/char_strings_runme.c branches/gsoc2008-maciekd/Examples/test-suite/c/enums_runme.c branches/gsoc2008-maciekd/Examples/test-suite/c/exception_order_runme.c branches/gsoc2008-maciekd/Examples/test-suite/callback.i branches/gsoc2008-maciekd/Examples/test-suite/chicken/chicken_ext_test_runme.ss branches/gsoc2008-maciekd/Examples/test-suite/chicken_ext_test.i branches/gsoc2008-maciekd/Examples/test-suite/complextest.i branches/gsoc2008-maciekd/Examples/test-suite/csharp/csharp_lib_arrays_runme.cs branches/gsoc2008-maciekd/Examples/test-suite/csharp/director_basic_runme.cs branches/gsoc2008-maciekd/Examples/test-suite/csharp/li_attribute_runme.cs branches/gsoc2008-maciekd/Examples/test-suite/csharp_lib_arrays.i branches/gsoc2008-maciekd/Examples/test-suite/director_profile.i branches/gsoc2008-maciekd/Examples/test-suite/director_protected_overloaded.i branches/gsoc2008-maciekd/Examples/test-suite/director_stl.i branches/gsoc2008-maciekd/Examples/test-suite/global_namespace.i branches/gsoc2008-maciekd/Examples/test-suite/guilescm/guilescm_ext_test_runme.scm branches/gsoc2008-maciekd/Examples/test-suite/guilescm_ext_test.i branches/gsoc2008-maciekd/Examples/test-suite/iadd.i branches/gsoc2008-maciekd/Examples/test-suite/implicittest.i branches/gsoc2008-maciekd/Examples/test-suite/inout.i branches/gsoc2008-maciekd/Examples/test-suite/inplaceadd.i branches/gsoc2008-maciekd/Examples/test-suite/input.i branches/gsoc2008-maciekd/Examples/test-suite/insert_directive.i branches/gsoc2008-maciekd/Examples/test-suite/java/global_namespace_runme.java branches/gsoc2008-maciekd/Examples/test-suite/java/li_boost_intrusive_ptr_runme.java branches/gsoc2008-maciekd/Examples/test-suite/li_boost_intrusive_ptr.i branches/gsoc2008-maciekd/Examples/test-suite/li_std_carray.i branches/gsoc2008-maciekd/Examples/test-suite/li_std_functors.i branches/gsoc2008-maciekd/Examples/test-suite/li_std_list.i branches/gsoc2008-maciekd/Examples/test-suite/li_std_pair_extra.i branches/gsoc2008-maciekd/Examples/test-suite/li_std_pair_lang_object.i branches/gsoc2008-maciekd/Examples/test-suite/li_std_queue.i branches/gsoc2008-maciekd/Examples/test-suite/li_std_stack.i branches/gsoc2008-maciekd/Examples/test-suite/li_std_string_extra.i branches/gsoc2008-maciekd/Examples/test-suite/li_std_vector_extra.i branches/gsoc2008-maciekd/Examples/test-suite/li_std_vector_ptr.i branches/gsoc2008-maciekd/Examples/test-suite/li_std_vectora.i branches/gsoc2008-maciekd/Examples/test-suite/li_std_wstream.i branches/gsoc2008-maciekd/Examples/test-suite/nested_structs.i branches/gsoc2008-maciekd/Examples/test-suite/octave/li_std_pair_extra_runme.m branches/gsoc2008-maciekd/Examples/test-suite/octave/li_std_string_extra_runme.m branches/gsoc2008-maciekd/Examples/test-suite/octave/octave_cell_deref_runme.m branches/gsoc2008-maciekd/Examples/test-suite/octave_cell_deref.i branches/gsoc2008-maciekd/Examples/test-suite/operbool.i branches/gsoc2008-maciekd/Examples/test-suite/packageoption_c.i branches/gsoc2008-maciekd/Examples/test-suite/php/ branches/gsoc2008-maciekd/Examples/test-suite/php/Makefile.in branches/gsoc2008-maciekd/Examples/test-suite/php/abstract_inherit_ok_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/abstract_inherit_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/add_link_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/argout_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/arrayptr_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/arrays_global_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/arrays_global_twodim_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/arrays_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/arrays_scope_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/casts_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/class_ignore_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/conversion_namespace_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/conversion_ns_template_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/conversion_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/cpp_static_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/enum_scope_template_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/evil_diamond_ns_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/evil_diamond_prop_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/evil_diamond_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/extend_template_ns_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/extend_template_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/grouping_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/ignore_parameter_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/li_carrays_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/li_std_string_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/rename_scope_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/skel.php branches/gsoc2008-maciekd/Examples/test-suite/php/smart_pointer_rename_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/sym_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/template_arg_typename_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/template_construct_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/tests.php branches/gsoc2008-maciekd/Examples/test-suite/php/typedef_reference_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/typemap_ns_using_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/using1_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/using2_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/valuewrapper_base_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php_namewarn_rename.i branches/gsoc2008-maciekd/Examples/test-suite/python/cpp_static_runme.py branches/gsoc2008-maciekd/Examples/test-suite/python/li_std_pair_extra_runme.py branches/gsoc2008-maciekd/Examples/test-suite/python/li_std_string_extra_runme.py branches/gsoc2008-maciekd/Examples/test-suite/python/li_std_vector_extra_runme.py branches/gsoc2008-maciekd/Examples/test-suite/python/li_std_vector_ptr_runme.py branches/gsoc2008-maciekd/Examples/test-suite/python/operbool_runme.py branches/gsoc2008-maciekd/Examples/test-suite/python/python_abstractbase_runme3.py branches/gsoc2008-maciekd/Examples/test-suite/python/python_append_runme.py branches/gsoc2008-maciekd/Examples/test-suite/python/python_kwargs_runme.py branches/gsoc2008-maciekd/Examples/test-suite/python/python_nondynamic_runme.py branches/gsoc2008-maciekd/Examples/test-suite/python/python_overload_simple_cast_runme.py branches/gsoc2008-maciekd/Examples/test-suite/python/python_pybuf_runme3.py branches/gsoc2008-maciekd/Examples/test-suite/python/rename_strip_encoder_runme.py branches/gsoc2008-maciekd/Examples/test-suite/python_abstractbase.i branches/gsoc2008-maciekd/Examples/test-suite/python_append.i branches/gsoc2008-maciekd/Examples/test-suite/python_autodoc.i branches/gsoc2008-maciekd/Examples/test-suite/python_kwargs.i branches/gsoc2008-maciekd/Examples/test-suite/python_nondynamic.i branches/gsoc2008-maciekd/Examples/test-suite/python_overload_simple_cast.i branches/gsoc2008-maciekd/Examples/test-suite/python_pybuf.i branches/gsoc2008-maciekd/Examples/test-suite/r/arrays_dimensionless_runme.R branches/gsoc2008-maciekd/Examples/test-suite/r/integers_runme.R branches/gsoc2008-maciekd/Examples/test-suite/r/r_copy_struct_runme.R branches/gsoc2008-maciekd/Examples/test-suite/r/r_double_delete_runme.R branches/gsoc2008-maciekd/Examples/test-suite/r/r_legacy_runme.R branches/gsoc2008-maciekd/Examples/test-suite/r_copy_struct.i branches/gsoc2008-maciekd/Examples/test-suite/r_double_delete.i branches/gsoc2008-maciekd/Examples/test-suite/r_legacy.i branches/gsoc2008-maciekd/Examples/test-suite/rename_strip_encoder.i branches/gsoc2008-maciekd/Examples/test-suite/ruby/ruby_keywords_runme.rb branches/gsoc2008-maciekd/Examples/test-suite/ruby/ruby_li_std_speed_runme.rb branches/gsoc2008-maciekd/Examples/test-suite/ruby/ruby_naming_runme.rb branches/gsoc2008-maciekd/Examples/test-suite/ruby/ruby_track_objects_directors_runme.rb branches/gsoc2008-maciekd/Examples/test-suite/ruby/ruby_track_objects_runme.rb branches/gsoc2008-maciekd/Examples/test-suite/ruby_keywords.i branches/gsoc2008-maciekd/Examples/test-suite/ruby_li_std_speed.i branches/gsoc2008-maciekd/Examples/test-suite/ruby_naming.i branches/gsoc2008-maciekd/Examples/test-suite/ruby_track_objects.i branches/gsoc2008-maciekd/Examples/test-suite/ruby_track_objects_directors.i branches/gsoc2008-maciekd/Examples/test-suite/simple_array.i branches/gsoc2008-maciekd/Examples/test-suite/simutry.i branches/gsoc2008-maciekd/Examples/test-suite/stl_new.i branches/gsoc2008-maciekd/Examples/test-suite/swigobject.i branches/gsoc2008-maciekd/Examples/test-suite/tcl/union_parameter_runme.tcl branches/gsoc2008-maciekd/Examples/test-suite/template_matrix.i branches/gsoc2008-maciekd/Examples/test-suite/union_parameter.i branches/gsoc2008-maciekd/Lib/c/ branches/gsoc2008-maciekd/Lib/c/c.swg branches/gsoc2008-maciekd/Lib/c/cexcept.swg branches/gsoc2008-maciekd/Lib/c/clabels.swg branches/gsoc2008-maciekd/Lib/c/cproxy.swg branches/gsoc2008-maciekd/Lib/c/std_string.i branches/gsoc2008-maciekd/Lib/csharp/arrays_csharp.i branches/gsoc2008-maciekd/Lib/intrusive_ptr.i branches/gsoc2008-maciekd/Lib/java/boost_intrusive_ptr.i branches/gsoc2008-maciekd/Lib/php/ branches/gsoc2008-maciekd/Lib/php/const.i branches/gsoc2008-maciekd/Lib/php/globalvar.i branches/gsoc2008-maciekd/Lib/php/php.swg branches/gsoc2008-maciekd/Lib/php/phpinit.swg branches/gsoc2008-maciekd/Lib/php/phpkw.swg branches/gsoc2008-maciekd/Lib/php/phppointers.i branches/gsoc2008-maciekd/Lib/php/phprun.swg branches/gsoc2008-maciekd/Lib/php/std_common.i branches/gsoc2008-maciekd/Lib/php/std_deque.i branches/gsoc2008-maciekd/Lib/php/std_map.i branches/gsoc2008-maciekd/Lib/php/std_pair.i branches/gsoc2008-maciekd/Lib/php/std_string.i branches/gsoc2008-maciekd/Lib/php/std_vector.i branches/gsoc2008-maciekd/Lib/php/stl.i branches/gsoc2008-maciekd/Lib/php/typemaps.i branches/gsoc2008-maciekd/Lib/php/utils.i branches/gsoc2008-maciekd/Lib/python/pyabc.i branches/gsoc2008-maciekd/Lib/python/pybuffer.i branches/gsoc2008-maciekd/Lib/python/pyname_compat.i branches/gsoc2008-maciekd/Source/Modules/c.cxx branches/gsoc2008-maciekd/Source/Modules/php.cxx branches/gsoc2008-maciekd/Tools/pyname_patch.py Removed Paths: ------------- branches/gsoc2008-maciekd/CCache/COPYING branches/gsoc2008-maciekd/CCache/Makefile.in branches/gsoc2008-maciekd/CCache/README branches/gsoc2008-maciekd/CCache/README.swig branches/gsoc2008-maciekd/CCache/args.c branches/gsoc2008-maciekd/CCache/ccache.c branches/gsoc2008-maciekd/CCache/ccache.h branches/gsoc2008-maciekd/CCache/ccache.yo branches/gsoc2008-maciekd/CCache/ccache_swig_config.h.in branches/gsoc2008-maciekd/CCache/cleanup.c branches/gsoc2008-maciekd/CCache/configure.in branches/gsoc2008-maciekd/CCache/debian/ branches/gsoc2008-maciekd/CCache/debian/NEWS branches/gsoc2008-maciekd/CCache/debian/README.Debian branches/gsoc2008-maciekd/CCache/debian/changelog branches/gsoc2008-maciekd/CCache/debian/compat branches/gsoc2008-maciekd/CCache/debian/control branches/gsoc2008-maciekd/CCache/debian/copyright branches/gsoc2008-maciekd/CCache/debian/dirs branches/gsoc2008-maciekd/CCache/debian/docs branches/gsoc2008-maciekd/CCache/debian/examples branches/gsoc2008-maciekd/CCache/debian/patches/ branches/gsoc2008-maciekd/CCache/debian/patches/01_no_home.diff branches/gsoc2008-maciekd/CCache/debian/patches/02_ccache-compressed.diff branches/gsoc2008-maciekd/CCache/debian/patches/03_long_options.diff branches/gsoc2008-maciekd/CCache/debian/patches/04_ignore_profile.diff branches/gsoc2008-maciekd/CCache/debian/patches/05_nfs_fix.diff branches/gsoc2008-maciekd/CCache/debian/patches/06_md.diff branches/gsoc2008-maciekd/CCache/debian/patches/07_cachedirtag.diff branches/gsoc2008-maciekd/CCache/debian/patches/08_manpage_hyphens.diff branches/gsoc2008-maciekd/CCache/debian/patches/09_respect_ldflags.diff branches/gsoc2008-maciekd/CCache/debian/patches/10_lru_cleanup.diff branches/gsoc2008-maciekd/CCache/debian/patches/11_utimes.diff branches/gsoc2008-maciekd/CCache/debian/patches/12_cachesize_permissions.diff branches/gsoc2008-maciekd/CCache/debian/patches/13_html_links.diff branches/gsoc2008-maciekd/CCache/debian/patches/14_hardlink_doc.diff branches/gsoc2008-maciekd/CCache/debian/patches/CREDITS branches/gsoc2008-maciekd/CCache/debian/rules branches/gsoc2008-maciekd/CCache/debian/update-ccache branches/gsoc2008-maciekd/CCache/debian/watch branches/gsoc2008-maciekd/CCache/execute.c branches/gsoc2008-maciekd/CCache/hash.c branches/gsoc2008-maciekd/CCache/install-sh branches/gsoc2008-maciekd/CCache/mdfour.c branches/gsoc2008-maciekd/CCache/mdfour.h branches/gsoc2008-maciekd/CCache/packaging/ branches/gsoc2008-maciekd/CCache/packaging/README branches/gsoc2008-maciekd/CCache/packaging/ccache.spec branches/gsoc2008-maciekd/CCache/snprintf.c branches/gsoc2008-maciekd/CCache/stats.c branches/gsoc2008-maciekd/CCache/test.sh branches/gsoc2008-maciekd/CCache/unify.c branches/gsoc2008-maciekd/CCache/util.c branches/gsoc2008-maciekd/CCache/web/ branches/gsoc2008-maciekd/CCache/web/index.html branches/gsoc2008-maciekd/Doc/Manual/C.html branches/gsoc2008-maciekd/Examples/GIFPlot/Java/full/main.java branches/gsoc2008-maciekd/Examples/GIFPlot/Java/shadow/main.java branches/gsoc2008-maciekd/Examples/GIFPlot/Java/simple/main.java branches/gsoc2008-maciekd/Examples/GIFPlot/Php/check.list branches/gsoc2008-maciekd/Examples/GIFPlot/Php/full/ branches/gsoc2008-maciekd/Examples/GIFPlot/Php/full/Makefile branches/gsoc2008-maciekd/Examples/GIFPlot/Php/full/README branches/gsoc2008-maciekd/Examples/GIFPlot/Php/full/cmap branches/gsoc2008-maciekd/Examples/GIFPlot/Php/full/gifplot.i branches/gsoc2008-maciekd/Examples/GIFPlot/Php/full/runme.php branches/gsoc2008-maciekd/Examples/GIFPlot/Php/shadow/ branches/gsoc2008-maciekd/Examples/GIFPlot/Php/shadow/Makefile branches/gsoc2008-maciekd/Examples/GIFPlot/Php/shadow/README branches/gsoc2008-maciekd/Examples/GIFPlot/Php/shadow/cmap branches/gsoc2008-maciekd/Examples/GIFPlot/Php/shadow/runme.php branches/gsoc2008-maciekd/Examples/GIFPlot/Php/simple/ branches/gsoc2008-maciekd/Examples/GIFPlot/Php/simple/Makefile branches/gsoc2008-maciekd/Examples/GIFPlot/Php/simple/README branches/gsoc2008-maciekd/Examples/GIFPlot/Php/simple/runme.php branches/gsoc2008-maciekd/Examples/GIFPlot/Php/simple/simple.i branches/gsoc2008-maciekd/Examples/GIFPlot/Php4/ branches/gsoc2008-maciekd/Examples/c/ branches/gsoc2008-maciekd/Examples/csharp/arrays/Makefile branches/gsoc2008-maciekd/Examples/csharp/arrays/example.c branches/gsoc2008-maciekd/Examples/csharp/arrays/example.h branches/gsoc2008-maciekd/Examples/csharp/arrays/example.i branches/gsoc2008-maciekd/Examples/csharp/arrays/runme.cs branches/gsoc2008-maciekd/Examples/java/callback/main.java branches/gsoc2008-maciekd/Examples/java/class/main.java branches/gsoc2008-maciekd/Examples/java/constants/main.java branches/gsoc2008-maciekd/Examples/java/enum/main.java branches/gsoc2008-maciekd/Examples/java/extend/main.java branches/gsoc2008-maciekd/Examples/java/funcptr/main.java branches/gsoc2008-maciekd/Examples/java/multimap/main.java branches/gsoc2008-maciekd/Examples/java/native/main.java branches/gsoc2008-maciekd/Examples/java/pointer/main.java branches/gsoc2008-maciekd/Examples/java/reference/main.java branches/gsoc2008-maciekd/Examples/java/simple/main.java branches/gsoc2008-maciekd/Examples/java/template/main.java branches/gsoc2008-maciekd/Examples/java/typemap/main.java branches/gsoc2008-maciekd/Examples/java/variables/main.java branches/gsoc2008-maciekd/Examples/php/check.list branches/gsoc2008-maciekd/Examples/php/class/ branches/gsoc2008-maciekd/Examples/php/class/Makefile branches/gsoc2008-maciekd/Examples/php/class/example.cxx branches/gsoc2008-maciekd/Examples/php/class/example.h branches/gsoc2008-maciekd/Examples/php/class/example.i branches/gsoc2008-maciekd/Examples/php/class/runme.php branches/gsoc2008-maciekd/Examples/php/constants/ branches/gsoc2008-maciekd/Examples/php/constants/Makefile branches/gsoc2008-maciekd/Examples/php/constants/example.i branches/gsoc2008-maciekd/Examples/php/constants/runme.php branches/gsoc2008-maciekd/Examples/php/cpointer/ branches/gsoc2008-maciekd/Examples/php/cpointer/Makefile branches/gsoc2008-maciekd/Examples/php/cpointer/example.c branches/gsoc2008-maciekd/Examples/php/cpointer/example.i branches/gsoc2008-maciekd/Examples/php/cpointer/runme.php branches/gsoc2008-maciekd/Examples/php/disown/ branches/gsoc2008-maciekd/Examples/php/disown/Makefile branches/gsoc2008-maciekd/Examples/php/disown/example.cxx branches/gsoc2008-maciekd/Examples/php/disown/example.h branches/gsoc2008-maciekd/Examples/php/disown/example.i branches/gsoc2008-maciekd/Examples/php/disown/runme.php branches/gsoc2008-maciekd/Examples/php/enum/ branches/gsoc2008-maciekd/Examples/php/enum/Makefile branches/gsoc2008-maciekd/Examples/php/enum/example.cxx branches/gsoc2008-maciekd/Examples/php/enum/example.h branches/gsoc2008-maciekd/Examples/php/enum/example.i branches/gsoc2008-maciekd/Examples/php/enum/runme.php branches/gsoc2008-maciekd/Examples/php/funcptr/ branches/gsoc2008-maciekd/Examples/php/funcptr/Makefile branches/gsoc2008-maciekd/Examples/php/funcptr/example.c branches/gsoc2008-maciekd/Examples/php/funcptr/example.h branches/gsoc2008-maciekd/Examples/php/funcptr/example.i branches/gsoc2008-maciekd/Examples/php/funcptr/runme.php branches/gsoc2008-maciekd/Examples/php/overloading/ branches/gsoc2008-maciekd/Examples/php/overloading/Makefile branches/gsoc2008-maciekd/Examples/php/overloading/example.cxx branches/gsoc2008-maciekd/Examples/php/overloading/example.h branches/gsoc2008-maciekd/Examples/php/overloading/example.i branches/gsoc2008-maciekd/Examples/php/overloading/runme.php branches/gsoc2008-maciekd/Examples/php/pointer/ branches/gsoc2008-maciekd/Examples/php/pointer/Makefile branches/gsoc2008-maciekd/Examples/php/pointer/example.c branches/gsoc2008-maciekd/Examples/php/pointer/example.i branches/gsoc2008-maciekd/Examples/php/pointer/runme.php branches/gsoc2008-maciekd/Examples/php/pragmas/ branches/gsoc2008-maciekd/Examples/php/pragmas/Makefile branches/gsoc2008-maciekd/Examples/php/pragmas/example.i branches/gsoc2008-maciekd/Examples/php/pragmas/include.php branches/gsoc2008-maciekd/Examples/php/pragmas/runme.php branches/gsoc2008-maciekd/Examples/php/proxy/ branches/gsoc2008-maciekd/Examples/php/proxy/Makefile branches/gsoc2008-maciekd/Examples/php/proxy/example.cxx branches/gsoc2008-maciekd/Examples/php/proxy/example.h branches/gsoc2008-maciekd/Examples/php/proxy/example.i branches/gsoc2008-maciekd/Examples/php/proxy/runme.php branches/gsoc2008-maciekd/Examples/php/reference/ branches/gsoc2008-maciekd/Examples/php/reference/Makefile branches/gsoc2008-maciekd/Examples/php/reference/example.cxx branches/gsoc2008-maciekd/Examples/php/reference/example.h branches/gsoc2008-maciekd/Examples/php/reference/example.i branches/gsoc2008-maciekd/Examples/php/reference/runme-proxy.php4 branches/gsoc2008-maciekd/Examples/php/reference/runme.php branches/gsoc2008-maciekd/Examples/php/simple/ branches/gsoc2008-maciekd/Examples/php/simple/Makefile branches/gsoc2008-maciekd/Examples/php/simple/example.c branches/gsoc2008-maciekd/Examples/php/simple/example.i branches/gsoc2008-maciekd/Examples/php/simple/runme.php branches/gsoc2008-maciekd/Examples/php/sync/ branches/gsoc2008-maciekd/Examples/php/sync/Makefile branches/gsoc2008-maciekd/Examples/php/sync/example.cxx branches/gsoc2008-maciekd/Examples/php/sync/example.h branches/gsoc2008-maciekd/Examples/php/sync/example.i branches/gsoc2008-maciekd/Examples/php/sync/runme.php branches/gsoc2008-maciekd/Examples/php/value/ branches/gsoc2008-maciekd/Examples/php/value/Makefile branches/gsoc2008-maciekd/Examples/php/value/example.c branches/gsoc2008-maciekd/Examples/php/value/example.h branches/gsoc2008-maciekd/Examples/php/value/example.i branches/gsoc2008-maciekd/Examples/php/value/runme.php branches/gsoc2008-maciekd/Examples/php/variables/ branches/gsoc2008-maciekd/Examples/php/variables/Makefile branches/gsoc2008-maciekd/Examples/php/variables/example.c branches/gsoc2008-maciekd/Examples/php/variables/example.h branches/gsoc2008-maciekd/Examples/php/variables/example.i branches/gsoc2008-maciekd/Examples/php/variables/runme.php branches/gsoc2008-maciekd/Examples/php/variables/runme.php4.old branches/gsoc2008-maciekd/Examples/php4/ branches/gsoc2008-maciekd/Examples/test-suite/c/ branches/gsoc2008-maciekd/Examples/test-suite/chicken/ext_test.i branches/gsoc2008-maciekd/Examples/test-suite/chicken/ext_test_runme.ss branches/gsoc2008-maciekd/Examples/test-suite/guilescm/ext_test.i branches/gsoc2008-maciekd/Examples/test-suite/guilescm/ext_test_runme.scm branches/gsoc2008-maciekd/Examples/test-suite/octave/cell_deref.i branches/gsoc2008-maciekd/Examples/test-suite/octave/cell_deref_runme.m branches/gsoc2008-maciekd/Examples/test-suite/octave/implicittest.i branches/gsoc2008-maciekd/Examples/test-suite/octave/li_std_pair.i branches/gsoc2008-maciekd/Examples/test-suite/octave/li_std_pair_runme.m branches/gsoc2008-maciekd/Examples/test-suite/octave/li_std_string.i branches/gsoc2008-maciekd/Examples/test-suite/octave/li_std_string_runme.m branches/gsoc2008-maciekd/Examples/test-suite/perl5/li_std_list.i branches/gsoc2008-maciekd/Examples/test-suite/php/Makefile.in branches/gsoc2008-maciekd/Examples/test-suite/php/abstract_inherit_ok_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/abstract_inherit_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/add_link_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/argout_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/arrayptr_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/arrays_global_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/arrays_global_twodim_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/arrays_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/arrays_scope_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/casts_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/class_ignore_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/conversion_namespace_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/conversion_ns_template_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/conversion_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/cpp_static_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/enum_scope_template_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/evil_diamond_ns_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/evil_diamond_prop_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/evil_diamond_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/extend_template_ns_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/extend_template_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/grouping_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/ignore_parameter_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/li_carrays_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/li_std_string_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/rename_scope_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/skel.php branches/gsoc2008-maciekd/Examples/test-suite/php/smart_pointer_rename_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/sym_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/template_arg_typename_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/template_construct_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/tests.php branches/gsoc2008-maciekd/Examples/test-suite/php/typedef_reference_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/typemap_ns_using_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/using1_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/using2_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/valuewrapper_base_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php4/ branches/gsoc2008-maciekd/Examples/test-suite/python/argcargvtest.i branches/gsoc2008-maciekd/Examples/test-suite/python/autodoc.i branches/gsoc2008-maciekd/Examples/test-suite/python/callback.i branches/gsoc2008-maciekd/Examples/test-suite/python/complextest.i branches/gsoc2008-maciekd/Examples/test-suite/python/director_profile.i branches/gsoc2008-maciekd/Examples/test-suite/python/director_stl.i branches/gsoc2008-maciekd/Examples/test-suite/python/iadd.h branches/gsoc2008-maciekd/Examples/test-suite/python/iadd.i branches/gsoc2008-maciekd/Examples/test-suite/python/implicittest.i branches/gsoc2008-maciekd/Examples/test-suite/python/inout.i branches/gsoc2008-maciekd/Examples/test-suite/python/inplaceadd.i branches/gsoc2008-maciekd/Examples/test-suite/python/input.i branches/gsoc2008-maciekd/Examples/test-suite/python/kwargs.i branches/gsoc2008-maciekd/Examples/test-suite/python/kwargs_runme.py branches/gsoc2008-maciekd/Examples/test-suite/python/li_std_carray.i branches/gsoc2008-maciekd/Examples/test-suite/python/li_std_map.i branches/gsoc2008-maciekd/Examples/test-suite/python/li_std_pair.i branches/gsoc2008-maciekd/Examples/test-suite/python/li_std_pair_runme.py branches/gsoc2008-maciekd/Examples/test-suite/python/li_std_set.i branches/gsoc2008-maciekd/Examples/test-suite/python/li_std_stream.i branches/gsoc2008-maciekd/Examples/test-suite/python/li_std_string.i branches/gsoc2008-maciekd/Examples/test-suite/python/li_std_string_runme.py branches/gsoc2008-maciekd/Examples/test-suite/python/li_std_vector.i branches/gsoc2008-... [truncated message content] |
From: <ma...@us...> - 2009-04-13 21:23:15
|
Revision: 11188 http://swig.svn.sourceforge.net/swig/?rev=11188&view=rev Author: maciekd Date: 2009-04-13 21:23:07 +0000 (Mon, 13 Apr 2009) Log Message: ----------- Several major fixes for: arrays, static members, member func.ptrs., exceptions, ... Lots of tests runs ok now. Modified Paths: -------------- branches/gsoc2008-maciekd/Examples/test-suite/arrays_dimensionless.i branches/gsoc2008-maciekd/Examples/test-suite/c/Makefile.in branches/gsoc2008-maciekd/Examples/test-suite/dynamic_cast.i branches/gsoc2008-maciekd/Lib/c/c.swg branches/gsoc2008-maciekd/Lib/c/std_string.i branches/gsoc2008-maciekd/Source/Modules/c.cxx Modified: branches/gsoc2008-maciekd/Examples/test-suite/arrays_dimensionless.i =================================================================== --- branches/gsoc2008-maciekd/Examples/test-suite/arrays_dimensionless.i 2009-04-11 16:46:47 UTC (rev 11187) +++ branches/gsoc2008-maciekd/Examples/test-suite/arrays_dimensionless.i 2009-04-13 21:23:07 UTC (rev 11188) @@ -9,10 +9,14 @@ int globalints[] = {100, 200, 300}; const int constglobalints[] = {400, 500, 600}; +class CC {}; + struct Bar { static int ints[]; + static CC ccs[]; }; int Bar::ints[] = {700, 800, 900}; +CC Bar::ccs[] = {CC(), CC()}; double arr_bool(bool array[], int length) { double sum=0.0; int i=0; for(; i<length; i++) { sum += array[i]; array[i]=!array[i]; } return sum; } double arr_char(char array[], int length) { double sum=0.0; int i=0; for(; i<length; i++) { sum += array[i]; array[i]*=2; } return sum; } Modified: branches/gsoc2008-maciekd/Examples/test-suite/c/Makefile.in =================================================================== --- branches/gsoc2008-maciekd/Examples/test-suite/c/Makefile.in 2009-04-11 16:46:47 UTC (rev 11187) +++ branches/gsoc2008-maciekd/Examples/test-suite/c/Makefile.in 2009-04-13 21:23:07 UTC (rev 11188) @@ -19,6 +19,13 @@ enums \ enum_plus +# +# BROKEN TEST CASES: +# default_constructor - last case: when using %extend generates 2 ctors wrappers, +# both using new, while the class constructor is private +# +CPP_TEST_BROKEN_CXX = default_constructor + include $(srcdir)/../common.mk INTERFACEDIR = ../../ Modified: branches/gsoc2008-maciekd/Examples/test-suite/dynamic_cast.i =================================================================== --- branches/gsoc2008-maciekd/Examples/test-suite/dynamic_cast.i 2009-04-11 16:46:47 UTC (rev 11187) +++ branches/gsoc2008-maciekd/Examples/test-suite/dynamic_cast.i 2009-04-13 21:23:07 UTC (rev 11188) @@ -1,7 +1,7 @@ /* File : example.i */ %module dynamic_cast -#if !defined(SWIGJAVA) && !defined(SWIGCSHARP) +#if !defined(SWIGJAVA) && !defined(SWIGCSHARP) && !defined(SWIGC) %apply SWIGTYPE *DYNAMIC { Foo * }; #endif @@ -17,14 +17,14 @@ }; %} -#if defined(SWIGJAVA) || defined(SWIGCSHARP) +#if defined(SWIGJAVA) || defined(SWIGCSHARP) || defined(SWIGC) %typemap(out) Foo *blah { Bar *downcast = dynamic_cast<Bar *>($1); *(Bar **)&$result = downcast; } #endif -#if defined(SWIGJAVA) +#if defined(SWIGJAVA) %typemap(javaout) Foo * { return new Bar($jnicall, $owner); } @@ -54,7 +54,7 @@ } %} -#if !defined(SWIGJAVA) && !defined(SWIGCSHARP) +#if !defined(SWIGJAVA) && !defined(SWIGCSHARP) && !defined(SWIGC) // A general purpose function for dynamic casting of a Foo * %{ static swig_type_info * Modified: branches/gsoc2008-maciekd/Lib/c/c.swg =================================================================== --- branches/gsoc2008-maciekd/Lib/c/c.swg 2009-04-11 16:46:47 UTC (rev 11187) +++ branches/gsoc2008-maciekd/Lib/c/c.swg 2009-04-13 21:23:07 UTC (rev 11188) @@ -5,6 +5,11 @@ * c.swg * ----------------------------------------------------------------------------- */ +// WARNING: passing function pointers from C as parameters of type (or as +// return values) SWIGTYPE (CLASS::*) causes cast of C function to type +// void(*)() and it is user's responsibility to properly handle this +// function's arguments and return value. + %insert("runtime") "clabels.swg" %insert("proxy_header") "cproxy.swg" @@ -18,64 +23,82 @@ #define SWIG_contract_assert(expr, msg) if(!(expr)) { printf("%s\n", msg); SWIG_exit(0); } else %} +%fragment("fptr_decl", "runtime") {typedef void(*SWIG_CPP_FP)();} +%fragment("fptr_decl_proxy", "proxy_header") {typedef void(*SWIG_CPP_FP)();} +%fragment("stdbool_inc", "proxy_header") {#include <stdbool.h>} + // typemaps for function parameters -%typemap(ctype) void, short, int, long, char, float, double "$1_type" -%typemap(ctype) unsigned short, unsigned int, unsigned long, unsigned char "$1_type" -%typemap(ctype) void *, short *, int *, long *, char *, float *, double * "$1_type" -%typemap(ctype) void **, short **, int **, long **, char **, float **, double ** "$1_type" -%typemap(ctype) unsigned short *, unsigned int *, unsigned long *, unsigned char * "$1_type" +%typemap(ctype) void, short, int, long, char, float, double "$1_ltype" +%typemap(ctype) unsigned short, unsigned int, unsigned long, unsigned char "$1_ltype" +%typemap(ctype) void *, short *, int *, long *, char *, float *, double * "$1_ltype" +%typemap(ctype) void **, short **, int **, long **, char **, float **, double ** "$1_ltype" +%typemap(ctype) unsigned short *, unsigned int *, unsigned long *, unsigned char * "$1_ltype" %typemap(ctype) unsigned short **, unsigned int **, unsigned long **, unsigned char ** "$1_type" -%typemap(ctype) short &, int &, long &, char &, float &, double & "$1_basetype *" -%typemap(ctype) unsigned short &, unsigned int &, unsigned long &, unsigned char & "$1_basetype *" -%typemap(ctype) const short &, const int &, const long &, const char &, const float &, const double & "$1_basetype const *" -%typemap(ctype) const short, const int, const long, const char, const float, const double "$1_type" +%typemap(ctype) short &, int &, long &, char &, float &, double & "$1_ltype" +%typemap(ctype) unsigned short &, unsigned int &, unsigned long &, unsigned char & "$1_ltype" +%typemap(ctype) const short &, const int &, const long &, const char &, const float &, const double & "$1_ltype" +%typemap(ctype) const short, const int, const long, const char, const float, const double "$1_ltype" %typemap(ctype) const unsigned short, const unsigned int, const unsigned long, const unsigned char "$1_type" -%typemap(ctype) const void *, const short *, const int *, const long *, const char *, const float *, const double * "$1_type" -%typemap(ctype) short *&, int *&, long *&, char *&, float *&, double *& "$1_basetype **" +%typemap(ctype) const void *, const short *, const int *, const long *, const char *, const float *, const double * "/*hhhh*/$1_type" +%typemap(ctype) short *&, int *&, long *&, char *&, float *&, double *& "$1_ltype" %typemap(ctype) const short *&, const int *&, const long *&, const char *&, const float *&, const double *& "$1_basetype **" -%typemap(ctype) short [ANY], int [ANY], long [ANY], char [ANY], float [ANY], double [ANY] "$1_basetype *" -%typemap(ctype) void * [ANY], short * [ANY], int * [ANY], long * [ANY], char * [ANY], float * [ANY], double * [ANY] "$1_basetype *" -%typemap(ctype) void [ANY][ANY], short [ANY][ANY], int [ANY][ANY], long [ANY][ANY], char [ANY][ANY], float [ANY][ANY], double [ANY][ANY] "$1_basetype **" +%typemap(ctype) short [ANY], int [ANY], long [ANY], char [ANY], float [ANY], double [ANY], unsigned char [ANY], unsigned int [ANY] "/*aaa*/ $1_ltype" +%typemap(ctype) void * [ANY], short * [ANY], int * [ANY], long * [ANY], char * [ANY], float * [ANY], double * [ANY] "/*bbb*/ $1_ltype" + +// special cases of array passing - does not work for objects +%typemap(ctype) SWIGTYPE [] "$1_ltype" +%typemap(ctype) SWIGTYPE ((&)[ANY]) "$1_basetype **" + +%typemap(ctype) void [ANY][ANY], short [ANY][ANY], int [ANY][ANY], long [ANY][ANY], char [ANY][ANY], float [ANY][ANY], double [ANY][ANY] "$1_ltype" %typemap(ctype) SWIGTYPE "SwigObj *" %typemap(ctype) SWIGTYPE * "SwigObj *" %typemap(ctype) SWIGTYPE & "SwigObj *" -%typemap(ctype) SWIGTYPE * [ANY], SWIGTYPE ** "SwigObj **" -%typemap(ctype) SWIGTYPE * [ANY][ANY], SWIGTYPE *** "SwigObj ***" -%typemap(ctype) SWIGTYPE *& "SwigObj **" +%typemap(ctype) SWIGTYPE [ANY][ANY], SWIGTYPE ** "/* whoa */ $*1_ltype *" +%typemap(ctype) SWIGTYPE *[ANY] "/*ooooh*/ $*1_ltype" +//%typemap(ctype) SWIGTYPE * [ANY][ANY], SWIGTYPE *** "SwigObj ***" +%typemap(ctype) SWIGTYPE *& "/* *& */ SwigObj **" %typemap(ctype) enum SWIGTYPE "int" +%typemap(ctype, fragment="fptr_decl", fragment="fptr_decl_proxy") SWIGTYPE (CLASS::*) "SWIG_CPP_FP" -%fragment("stdbool_inc", "proxy_header") {#include <stdbool.h>} %typemap(ctype, fragment="stdbool_inc") bool, bool *, bool **, const bool, const bool *, bool * [ANY] "$1_type" -%typemap(ctype, fragment="stdbool_inc") bool & "$1_basetype *" -%typemap(ctype, fragment="stdbool_inc") const bool & "$1_basetype const *" +%typemap(ctype, fragment="stdbool_inc") bool & "$1_ltype" +%typemap(ctype, fragment="stdbool_inc") const bool & "$1_ltype const" -%typemap(in) short, int, long, char, float, double "$1 = ($1_type) $input;" -%typemap(in) void *, short *, int *, long *, char *, float *, double * "$1 = ($1_type) $input;" +%typemap(in) short, int, long, char, float, double "$1 = ($1_ltype) $input;" +%typemap(in) void *, short *, int *, long *, char *, float *, double * "$1 = ($1_ltype) $input;" %typemap(in) void **, short **, int **, long **, char **, float **, double ** "$1 = ($1_basetype **) $input;" -%typemap(in) unsigned short *, unsigned int *, unsigned long *, unsigned char * "$1 = ($1_type) $input;" -%typemap(in) unsigned short **, unsigned int **, unsigned long **, unsigned char ** "$1 = ($1_type) $input;" -%typemap(in) const void *, const short *, const int *, const long *, const char *, const float *, const double * "$1 = ($1_basetype *) $input;" -%typemap(in) const unsigned short *, const unsigned int *, const unsigned long *, const unsigned char * "$1 = ($1_type) $input;" -%typemap(in) unsigned short, unsigned int, unsigned long, unsigned char "$1 = ($1_type) $input;" -%typemap(in) short &, int &, long &, char &, float &, double &, bool & "$1 = ($1_basetype *) $input;" -%typemap(in) const short &, const int &, const long &, const char &, const float &, const double & "$1 = ($1_basetype *) $input;" -%typemap(in) unsigned short &, unsigned int &, unsigned long &, unsigned char & "$1 = ($1_basetype *) $input;" -%typemap(in) const unsigned short &, const unsigned int &, const unsigned long &, const unsigned char & "$1 = ($1_basetype *) $input;" +%typemap(in) unsigned short *, unsigned int *, unsigned long *, unsigned char * "$1 = ($1_ltype) $input;" +%typemap(in) unsigned short **, unsigned int **, unsigned long **, unsigned char ** "$1 = ($1_ltype) $input;" +%typemap(in) const void *, const short *, const int *, const long *, const char *, const float *, const double * "$1 = ($1_ltype) $input;" +%typemap(in) const unsigned short *, const unsigned int *, const unsigned long *, const unsigned char * "$1 = ($1_ltype) $input;" +%typemap(in) unsigned short, unsigned int, unsigned long, unsigned char "$1 = ($1_ltype) $input;" +%typemap(in) short &, int &, long &, char &, float &, double &, bool & "$1 = ($1_ltype) $input;" +%typemap(in) const short &, const int &, const long &, const char &, const float &, const double & "$1 = ($1_ltype) $input;" +%typemap(in) unsigned short &, unsigned int &, unsigned long &, unsigned char & "$1 = ($1_ltype) $input;" +%typemap(in) const unsigned short &, const unsigned int &, const unsigned long &, const unsigned char & "$1 = ($1_ltype) $input;" %typemap(in) short *&, int *&, long *&, char *&, float *&, double *& "$1 = ($1_ltype) $input;" %typemap(in) const short *&, const int *&, const long *&, const char *&, const float *&, const double *& "$1 = ($1_ltype) $input;" -%typemap(in) short [ANY], int [ANY], long [ANY], char [ANY], float [ANY], double [ANY] "$1 = ($1_basetype *) $input;" +%typemap(in) short [ANY], int [ANY], long [ANY], char [ANY], float [ANY], double [ANY], unsigned char [ANY] "$1 = ($1_basetype *) $input;" %typemap(in) void * [ANY], short * [ANY], int * [ANY], long * [ANY], char * [ANY], float * [ANY], double * [ANY] "$1 = ($1_basetype *) $input;" -%typemap(in, fragment="stdbool_inc") bool, bool *, bool **, const bool, const bool * "$1 = ($1_type) $input;" +%typemap(in, fragment="stdbool_inc") bool, bool *, bool **, const bool, const bool * "$1 = ($1_ltype) $input;" %typemap(in, fragment="stdbool_inc") bool & "$1 = ($1_basetype *) $input;" %typemap(in, fragment="stdbool_inc") const bool &, const bool * "$1 = ($1_basetype *) $input;" %typemap(in) enum SWIGTYPE "$1 = ($1_type) $input;" +%typemap(in) SWIGTYPE [] "$1 = ($1_ltype) $input;" +%typemap(in) SWIGTYPE ((&)[ANY]) "$1 = ($1_ltype) $input;" + +%typemap(in) SWIGTYPE (CLASS::*) { + if ($input) + $1 = *($&1_ltype) &$input; +} + %typemap(in) SWIGTYPE { - $1 = * ($1_type *) ($input->obj); + $1 = *($1_ltype *) ($input->obj); } %typemap(in) SWIGTYPE * { @@ -83,7 +106,12 @@ $1 = ($1_ltype) $input->obj; } -%typemap(in) SWIGTYPE * [ANY], SWIGTYPE ** { +%typemap(in) SWIGTYPE ** { + if ($input) + $1 = ($1_ltype) $input; +} + +%typemap(in) SWIGTYPE *[ANY] { if ($input) { $1 = ($1_ltype) malloc($1_dim0 * sizeof($1_basetype)); size_t i = 0; @@ -97,15 +125,7 @@ $1 = ($1_ltype) 0; } -/* - * unsupported yet -%typemap(freearg) SWIGTYPE * [ANY], SWIGTYPE * [ANY][ANY], SWIGTYPE **, SWIGTYPE *** { - if ($input) - free($input); -} -*/ - -%typemap(in) SWIGTYPE * [ANY][ANY], SWIGTYPE *** { +%typemap(in) SWIGTYPE [ANY][ANY] { if ($input) { $1 = ($1_ltype) malloc($1_dim0 * $1_dim1 * sizeof($1_basetype)); size_t i = 0, j = 0; @@ -122,65 +142,87 @@ $1 = ($1_ltype) 0; } +/* + * unsupported yet +%typemap(freearg) SWIGTYPE * [ANY], SWIGTYPE * [ANY][ANY], SWIGTYPE **, SWIGTYPE *** { + if ($input) + free($input); +} +*/ + %typemap(in) SWIGTYPE & { if ($input) - $1 = ($1_basetype *) $input->obj; + $1 = ($1_ltype) $input->obj; else - $1 = ($1_basetype *) 0; + $1 = ($1_ltype) 0; } %typemap(in) SWIGTYPE *& { if ($input) - $1 = ($1_basetype **) &(*$input)->obj; + $1 = ($1_ltype) &(*$input)->obj; else - $1 = ($1_basetype **) 0; + $1 = ($1_ltype) 0; } // typemaps for return values -%typemap(couttype) void, short, int, long, char, float, double "$1_type" -%typemap(couttype) void *, short *, int *, long *, char *, float *, double* "$1_type" -%typemap(couttype) const short, const int, const long, const char, const float, const double "$1_basetype" -%typemap(couttype) const void *, const short *, const int *, const long *, const char *, const float *, const double * "$1_type" -%typemap(couttype) short &, int &, long &, char &, float &, double & "$1_basetype *" +%typemap(couttype) void, short, int, long, char, float, double "$1_ltype" +%typemap(couttype) unsigned short, unsigned int, unsigned long, unsigned char, signed char "$1_ltype" +%typemap(couttype) void *, short *, int *, long *, char *, float *, double*, unsigned char *, signed char * "$1_ltype" +%typemap(couttype) const short, const int, const long, const char, const float, const double "$1_ltype" +%typemap(couttype) const void *, const short *, const int *, const long *, const char *, const float *, const double * "$1_ltype" +%typemap(couttype) short &, int &, long &, char &, float &, double & "$1_ltype" %typemap(couttype) const short &, const int &, const long &, const char &, const float &, const double & "$1_basetype const *" -%typemap(couttype) short *&, int *&, long *&, char *&, float *&, double *& "$1_basetype **" -%typemap(couttype) const short *&, const int *&, const long *&, const char *&, const float *&, const double *& "$1_basetype **" -%typemap(couttype) short [ANY], int [ANY], long [ANY], char [ANY], float [ANY], double [ANY] "$1_basetype *" -%typemap(couttype) short * [ANY], int * [ANY], long * [ANY], char * [ANY], float * [ANY], double * [ANY] "$1_basetype *" +%typemap(couttype) short *&, int *&, long *&, char *&, float *&, double *& "$1_ltype" +%typemap(couttype) const short *&, const int *&, const long *&, const char *&, const float *&, const double *& "$1_ltype" +%typemap(couttype) short [ANY], int [ANY], long [ANY], char [ANY], float [ANY], double [ANY], unsigned char [ANY], signed char [ANY], unsigned int [ANY] "$1_ltype" +%typemap(couttype) short * [ANY], int * [ANY], long * [ANY], char * [ANY], float * [ANY], double * [ANY] "/*builtin * [ANY]*/ $1_ltype" +%typemap(couttype) short **, int **, long **, char **, float **, double ** "$1_ltype" %typemap(couttype) SWIGTYPE "SwigObj *" -%typemap(couttype) SWIGTYPE * "SwigObj *" -%typemap(couttype) SWIGTYPE & "SwigObj *" -%typemap(couttype) SWIGTYPE [ANY] "SwigObj **" -%typemap(couttype) SWIGTYPE * [ANY], SWIGTYPE ** "SwigObj **" -%typemap(couttype) SWIGTYPE * [ANY][ANY], SWIGTYPE *** "SwigObj ***" +%typemap(couttype) SWIGTYPE * "/*aaaaaa*/SwigObj *" +%typemap(couttype) SWIGTYPE & "SwigObj *" +%typemap(couttype) SWIGTYPE *& "SwigObj **" +%typemap(couttype) SWIGTYPE [ANY] "/*SWIGTYPE [ANY]*/ SwigObj **" +%typemap(couttype) SWIGTYPE * [ANY], SWIGTYPE ** "/*SWIGTYPE *[ANY]/** */ SwigObj **" +//%typemap(couttype) SWIGTYPE * [ANY][ANY], SWIGTYPE *** "SwigObj ***" %typemap(couttype) enum SWIGTYPE "int" +%typemap(couttype, fragment="fptr_decl") SWIGTYPE (CLASS::*) "SWIG_CPP_FP" -%typemap(couttype, fragment="stdbool_inc") bool, bool *, const bool, const bool * "$1_type" +%typemap(couttype, fragment="stdbool_inc") bool, bool *, const bool, const bool * "$1_ltype" %typemap(couttype, fragment="stdbool_inc") bool & "$1_basetype*" %typemap(couttype, fragment="stdbool_inc") const bool & "$1_basetype const *" %typemap(out) short, int, long, char, float, double "$result = $1;" %typemap(out) void*, short*, int*, long*, char*, float*, double* "$result = $1;" -%typemap(out) const short, const int, const long, const char, const float, const double "$result = $1;" -%typemap(out) const void *, const short *, const int *, const long *, const char *, const float *, const double * "$result = $1;" -%typemap(out) unsigned short, unsigned int, unsigned long, unsigned char "$result = $1;" -%typemap(out) unsigned short *, unsigned int *, unsigned long *, unsigned char * "$result = $1;" +%typemap(out) const short, const int, const long, const char, const float, const double "$result = ($1_ltype) $1;" +%typemap(out) const void *, const short *, const int *, const long *, const char *, const float *, const double * "$result = ($1_ltype) $1;" +%typemap(out) unsigned short, unsigned int, unsigned long, unsigned char, signed char "$result = $1;" +%typemap(out) unsigned short *, unsigned int *, unsigned long *, unsigned char *, signed char * "$result = $1;" %typemap(out) short &, int &, long &, char &, float &, double & "$result = $1;" -%typemap(out) unsigned short &, unsigned int &, unsigned long &, unsigned char & "$result = $1;" +%typemap(out) unsigned short &, unsigned int &, unsigned long &, unsigned char &, signed char & "$result = $1;" %typemap(out) const short &, const int &, const long &, const char &, const float &, const double & "$result = $1;" -%typemap(out) const unsigned short &, const unsigned int &, const unsigned long &, const unsigned char & "$result = $1;" +%typemap(out) const unsigned short &, const unsigned int &, const unsigned long &, const unsigned char &, const signed char & "$result = $1;" %typemap(out) short *&, int *&, long *&, char *&, float *&, double *& "$result = $1;" %typemap(out) const short *&, const int *&, const long *&, const char *&, const float *&, const double *& "$result = $1;" -%typemap(out) short [ANY], int [ANY], long [ANY], char [ANY], float [ANY], double [ANY] "$result = $1;" +%typemap(out) short [ANY], int [ANY], long [ANY], char [ANY], float [ANY], double [ANY], unsigned char [ANY], signed char [ANY], unsigned int [ANY] "$result = $1;" %typemap(out) short * [ANY], int * [ANY], long * [ANY], char * [ANY], float * [ANY], double * [ANY] "$result = $1;" +%typemap(out) short **, int **, long **, char **, float **, double ** "$result = $1;" %typemap(out) void "" -%typemap(out, fragment="stdbool_inc") bool, bool *, const bool, const bool * "$result = $1;" +%typemap(out, fragment="stdbool_inc") bool, bool *, const bool, const bool * "$result = ($1_ltype) $1;" %typemap(out, fragment="stdbool_inc") bool &, const bool & "$result = $1;" -%typemap(out) enum SWIGTYPE "$result = ($1_type) $1;" +%typemap(out) enum SWIGTYPE "$result = ($1_ltype) $1;" +%typemap(out) SWIGTYPE (CLASS::*) { + *($&1_ltype) &$result = $1; +} + +%typemap(out) SWIGTYPE *&, SWIGTYPE ** { + $result = &SWIG_temporary; + (*result)->obj = (void*) $1; +} + %typemap(out) SWIGTYPE { $result = SWIG_temporary; $result->obj = (void*) &$1; @@ -191,7 +233,7 @@ $result->obj = (void*) $1; } -%typemap(out) SWIGTYPE * [ANY], SWIGTYPE ** { +%typemap(out) SWIGTYPE * [ANY], SWIGTYPE [ANY][ANY] { static SwigObj **_temp = 0; if ($1) { size_t i = 0; Modified: branches/gsoc2008-maciekd/Lib/c/std_string.i =================================================================== --- branches/gsoc2008-maciekd/Lib/c/std_string.i 2009-04-11 16:46:47 UTC (rev 11187) +++ branches/gsoc2008-maciekd/Lib/c/std_string.i 2009-04-13 21:23:07 UTC (rev 11188) @@ -11,6 +11,7 @@ %typemap(ctype) string "char *" %typemap(ctype) string * "char *" +%typemap(ctype) string & "char *" %typemap(ctype) const string & "char *" %typemap(couttype) string "char *" %typemap(couttype) const string & "char *" @@ -25,7 +26,7 @@ } } -%typemap(in) const string &, string * { +%typemap(in) const string &, string *, string & { if ($input) { $1 = new std::string($input); } Modified: branches/gsoc2008-maciekd/Source/Modules/c.cxx =================================================================== --- branches/gsoc2008-maciekd/Source/Modules/c.cxx 2009-04-11 16:46:47 UTC (rev 11187) +++ branches/gsoc2008-maciekd/Source/Modules/c.cxx 2009-04-13 21:23:07 UTC (rev 11188) @@ -7,13 +7,14 @@ * C language module for SWIG. * ----------------------------------------------------------------------------- */ -char cvsroot_c_cxx[] = "$Id$"; +char cvsroot_c_cxx[] = "$Id: c.cxx 11186 2009-04-11 10:46:13Z maciekd $"; #include <ctype.h> #include "swigmod.h" int SwigType_isbuiltin(SwigType *t) { - const char* builtins[] = { "void", "short", "int", "long", "char", "float", "double", "bool", 0 }; + const char* builtins[] = { "void", "short", "int", "long", "char", "float", "double", "bool", + "unsigned short", "unsigned int", "unsigned long", "unsigned char", "signed char", 0 }; int i = 0; char *c = Char(t); if (!t) @@ -410,7 +411,9 @@ virtual int functionWrapper(Node *n) { String *name = Getattr(n, "sym:name"); + String *storage = Getattr(n, "storage"); SwigType *type = Getattr(n, "type"); + SwigType *otype = Copy(type); SwigType *return_type = NewString(""); String *wname; String *arg_names = NewString(""); @@ -422,7 +425,7 @@ SwigType *return_var_type = empty_string; int gencomma; bool is_void_return = (SwigType_type(type) == T_VOID); - + // create new function wrapper object Wrapper *wrapper = NewWrapper(); @@ -479,18 +482,19 @@ else { // C++ function wrapper - // mark the first parameter as object-struct - if ((Cmp(Getattr(n, "storage"), "static") != 0) && - (Cmp(Getattr(n, "ismember"), "1") == 0) && + // mark the first parameter as object-struct + if (storage && Cmp(storage, "static") != 0) { + if ((Cmp(Getattr(n, "ismember"), "1") == 0) && (Cmp(nodeType(n), "constructor") != 0)) { - Setattr(parms, "c:objstruct", "1"); - if (!Getattr(parms, "lname")) - Setattr(parms, "lname", "arg1"); - SwigType *stype = Copy(Getattr(Swig_methodclass(n), "sym:name")); - SwigType_add_pointer(stype); - Setattr(parms, "c:stype", stype); + Setattr(parms, "c:objstruct", "1"); + if (!Getattr(parms, "lname")) + Setattr(parms, "lname", "arg1"); + SwigType *stype = Copy(Getattr(Swig_methodclass(n), "sym:name")); + SwigType_add_pointer(stype); + Setattr(parms, "c:stype", stype); + } } - + // mangle name if function is overloaded if (Getattr(n, "sym:overloaded")) { if (!Getattr(n, "copy_constructor")) { @@ -521,83 +525,112 @@ else { Swig_warning(WARN_C_TYPEMAP_CTYPE_UNDEF, input_file, line_number, "No couttype typemap defined for %s\n", SwigType_str(type, 0)); } - + // add variable for holding result of original function 'cppresult' + // WARNING: Here we possibly make change to 'type' attribute of the node. + // This is done before the standard typemaps are attached, so they will + // use the modified type. + // In order to refer to the original type use 'otype' variable. bool return_object = false; if (!is_void_return && (Cmp(Getattr(n, "c:objstruct"), "1") != 0)) { - SwigType *tdtype = SwigType_typedef_resolve(type); + SwigType *tdtype = SwigType_typedef_resolve_all(type); if (tdtype) type = tdtype; - if (SwigType_isenum(type)) { + if (SwigType_ismemberpointer(type)) { + Wrapper_add_local(wrapper, "cppresult", SwigType_str(type, "cppresult")); + } + else if (SwigType_isenum(type)) { Wrapper_add_localv(wrapper, "cppresult", "int", "cppresult", NIL); } - else if (SwigType_isbuiltin(SwigType_base(type))) { - // type is built-in (int, char, double, etc.) - if (SwigType_isconst(type)) - SwigType_del_qualifier(type); + else { + if (SwigType_isbuiltin(SwigType_base(type))) { + // type is built-in (int, char, double, etc.) + + //Printf(stdout, "BUILTIN %s %s\n", name, SwigType_str(type, 0)); + + if (SwigType_isconst(type)) + SwigType_del_qualifier(type); - if (SwigType_isreference(type)) { - if (SwigType_isconst(SwigType_del_reference(type))) { + if (SwigType_isreference(type)) { + if (SwigType_isconst(SwigType_del_reference(type))) { + return_var_type = SwigType_base(type); + SwigType_add_qualifier(return_var_type, "const"); + SwigType_add_pointer(return_var_type); + } + else { + return_var_type = SwigType_base(type); + SwigType_add_pointer(return_var_type); + } + if (SwigType_ispointer(type)) { + SwigType_add_pointer(return_var_type); + } + SwigType_add_reference(type); + } + else if (SwigType_isarray(type)) { + return_var_type = SwigType_base(type); - SwigType_add_qualifier(return_var_type, "const"); - SwigType_add_pointer(return_var_type); + SwigType *atype = Copy(type); + do { + SwigType_del_array(atype); + SwigType_add_pointer(return_var_type); + } while (SwigType_isarray(atype)); + if (SwigType_ispointer(atype)) + SwigType_add_pointer(return_var_type); + Delete(atype); } else { - return_var_type = SwigType_base(type); - SwigType_add_pointer(return_var_type); + return_var_type = type; } + } + else { + // type is class + + //Printf(stdout, "CLASS %s %s\n", name, SwigType_str(type, 0)); if (SwigType_ispointer(type)) { - SwigType_add_pointer(return_var_type); + return_var_type = type; } - SwigType_add_reference(type); + else if (SwigType_isreference(type)) { + return_var_type = type; + SwigType_del_reference(return_var_type); + SwigType_add_pointer(return_var_type); + } + else if (SwigType_isarray(type)) { + return_var_type = SwigType_base(type); + SwigType *atype = Copy(type); + do { + SwigType_del_array(atype); + SwigType_add_pointer(return_var_type); + } while (SwigType_isarray(atype)); + Delete(atype); + //if (Cmp(Getattr(n, "c:retval"), "1")) + SwigType_add_pointer(return_var_type); + } + else { + SwigType_add_pointer(type); + return_var_type = type; + } + return_object = true; } - else if (SwigType_isarray(type)) { - - return_var_type = SwigType_base(type); - SwigType *atype = Copy(type); - do { - SwigType_del_array(atype); - SwigType_add_pointer(return_var_type); - } while (SwigType_isarray(atype)); - if (SwigType_ispointer(atype)) - SwigType_add_pointer(return_var_type); - Delete(atype); + + // hack for handling const 'cppresult' return values, + // including cases like: A const *& + SwigType *temp1 = Copy(otype), *temp2 = 0; + if (SwigType_isreference(temp1)) { + SwigType_del_reference(temp1); + temp2 = Copy(temp1); + if (SwigType_ispointer(temp2)) + SwigType_del_pointer(temp2); } - else { - return_var_type = type; - } - - Wrapper_add_localv(wrapper, "cppresult", SwigType_str(return_var_type, 0), "cppresult", NIL); + String *var_name = SwigType_str(return_var_type, 0); + if (SwigType_isconst(otype) || SwigType_isconst(temp1) || SwigType_isconst(temp2)) + Replaceall(var_name, "const", ""); + Wrapper_add_localv(wrapper, "cppresult", var_name, "cppresult", NIL); + Delete(var_name); + Delete(temp1); + if (temp2) + Delete(temp2); } - else { - // type is class - if (SwigType_ispointer(type)) - return_var_type = type; - else if (SwigType_isreference(type)) { - return_var_type = SwigType_base(type); - SwigType_add_pointer(return_var_type); - if (SwigType_ispointer(type)) - SwigType_add_pointer(return_var_type); - } - else if (SwigType_isarray(type)) { - return_var_type = SwigType_base(type); - SwigType *atype = Copy(type); - do { - SwigType_del_array(atype); - SwigType_add_pointer(return_var_type); - } while (SwigType_isarray(atype)); - Delete(atype); - if (Cmp(Getattr(n, "c:retval"), "1")) - SwigType_add_pointer(return_var_type); - } - else { - SwigType_add_pointer(type); - return_var_type = type; - } - Wrapper_add_localv(wrapper, "cppresult", SwigType_str(return_var_type, 0), "cppresult", NIL); - return_object = true; - } } // make sure lnames are set @@ -624,16 +657,27 @@ // prepare function definition gencomma = 0; for (p = parms; p; ) { + + //Printf(stdout, "TYPE: %s ", SwigType_str(Getattr(p, "type"), 0)); + //Swig_print_node(p); while (checkAttribute(p, "tmap:in:numinputs", "0")) { p = Getattr(p, "tmap:in:next"); } SwigType *type = Getattr(p, "type"); + if (SwigType_type(type) == T_VOID) { + p = nextSibling(p); + continue; + } String *lname = Getattr(p, "lname"); String *c_parm_type = NewString(""); String *proxy_parm_type = NewString(""); String *arg_name = NewString(""); + + SwigType *tdtype = SwigType_typedef_resolve_all(type); + if (tdtype) + type = tdtype; Printf(arg_name, "c%s", lname); @@ -644,6 +688,11 @@ else { Swig_warning(WARN_C_TYPEMAP_CTYPE_UNDEF, input_file, line_number, "No ctype typemap defined for %s\n", SwigType_str(type, 0)); } + + // hack for handling arrays of objects, as typemap SWIGOBJ *[ANY] + // precedes int *[ANY] for int arrays + if (!SwigType_isbuiltin(SwigType_base(type))) + Replaceall(c_parm_type, SwigType_base(type), SwigType_isarray(type) ? "SwigObj *" : "SwigObj"); // use proxy-type for parameter if supplied String* stype = Getattr(p, "c:stype"); @@ -654,9 +703,9 @@ Printv(proxy_parm_type, c_parm_type, NIL); } - Printv(arg_names, gencomma ? ", " : "", Getattr(p, "name"), NIL); + Printv(arg_names, gencomma ? ", " : "", arg_name, NIL); Printv(wrapper->def, gencomma ? ", " : "", c_parm_type, " ", arg_name, NIL); - Printv(proto, gencomma ? ", " : "", proxy_parm_type, " ", Getattr(p, "name"), NIL); + Printv(proto, gencomma ? ", " : "", proxy_parm_type, " ", arg_name, NIL); gencomma = 1; // apply typemaps for input parameter @@ -674,7 +723,6 @@ p = nextSibling(p); } - Delete(arg_name); Delete(proxy_parm_type); Delete(c_parm_type); @@ -703,13 +751,10 @@ } } - // emit action code - String *action = emit_action(n); - String *except = Getattr(n, "feature:except"); - if (Getattr(n, "throws") || except) { - if (!except || (Cmp(except, "0") != 0)) - Printf(action, "if (SWIG_exc.handled) {\nSWIG_rt_stack_pop();\nlongjmp(SWIG_rt_env, 1);\n}\n"); - } + // create action code + String *action = Getattr(n, "wrap:action"); + if (!action) + action = NewString(""); // handle special cases of cpp return result if (Cmp(nodeType(n), "constructor") != 0) { @@ -717,19 +762,32 @@ // returning enum value Replace(action, "result =", "cppresult = (int)", DOH_REPLACE_FIRST); } - else if (return_object && Getattr(n, "c:retval") && !SwigType_isarray(type)) { + else if (return_object && Getattr(n, "c:retval") && !SwigType_isarray(type) + && Cmp(Getattr(n, "storage"), "static") != 0) { // returning object by value String *str = SwigType_str(SwigType_add_reference(SwigType_base(type)), "_result_ref"); String *lstr = SwigType_lstr(type, 0); - Replace(action, "result =", NewStringf("const %s = ", str), DOH_REPLACE_FIRST); - Printf(action, "cppresult = (%s) &_result_ref;\n", lstr); + if (Cmp(Getattr(n, "kind"), "variable") == 0) { + Delete(action); + action = NewStringf("const %s = %s;\n", str, Swig_cmemberget_call(Getattr(n, "name"), type, 0, 0)); + } + else { + String *call_str = NewStringf("const %s = %s", str, + SwigType_ispointer(SwigType_typedef_resolve_all(otype)) ? "*" : ""); + Replace(action, "result =", call_str, DOH_REPLACE_FIRST); + Delete(call_str); + } + Printf(action, "\ncppresult = (%s) &_result_ref;\n", lstr); Delete(str); Delete(lstr); } else Replace(action, "result =", "cppresult = ", DOH_REPLACE_FIRST); } - + + // prepare action code to use, e.g. insert try-catch blocks + action = emit_action(n); + // emit output typemap if needed if (!is_void_return && (Cmp(Getattr(n, "c:objstruct"), "1") != 0)) { if ((tm = Swig_typemap_lookup_out("out", n, "cppresult", wrapper, action))) { @@ -746,6 +804,12 @@ Append(wrapper->code, action); } + String *except = Getattr(n, "feature:except"); + if (Getattr(n, "throws") || except) { + if (!except || (Cmp(except, "0") != 0)) + Printf(wrapper->code, "if (SWIG_exc.handled) {\nSWIG_rt_stack_pop();\nlongjmp(SWIG_rt_env, 1);\n}\n"); + } + // insert cleanup code for (p = parms; p; ) { if ((tm = Getattr(p, "tmap:freearg"))) { @@ -796,6 +860,7 @@ Delete(arg_names); Delete(wname); Delete(return_type); + Delete(otype); DelWrapper(wrapper); return SWIG_OK; } @@ -923,7 +988,7 @@ virtual int staticmemberfunctionHandler(Node *n) { SwigType *type = Getattr(n, "type"); SwigType *tdtype; - tdtype = SwigType_typedef_resolve(type); + tdtype = SwigType_typedef_resolve_all(type); if (tdtype) type = tdtype; if (type) { @@ -940,7 +1005,7 @@ virtual int memberfunctionHandler(Node *n) { SwigType *type = Getattr(n, "type"); SwigType *tdtype; - tdtype = SwigType_typedef_resolve(type); + tdtype = SwigType_typedef_resolve_all(type); if (tdtype) type = tdtype; if (type) { @@ -950,114 +1015,32 @@ return Language::memberfunctionHandler(n); } - /* -------------------------------------------------------------------- - * wrap_get_variable() - * --------------------------------------------------------------------- */ - void wrap_get_variable(Node *n, String *classname, String *newclassname, String *name, String *code) { - // modify method name - String *new_name = NewString(""); - Printv(new_name, newclassname, "_", Swig_name_get(name), NIL); - Setattr(n, "sym:name", new_name); - - // generate action code - String *action = NewString(""); - if (!code) { - code = NewString(""); - Printv(code, "result = ((", classname, "*) arg1->obj)->", name, ";\n", NIL); - } - Append(action, code); - - Setattr(n, "wrap:action", action); - - functionWrapper(n); - - Delete(code); // we are deallocating it, regardless of where it was created - Delete(action); - Delete(new_name); - } - - /* -------------------------------------------------------------------- - * wrap_set_variable() - * --------------------------------------------------------------------- */ - - void wrap_set_variable(Node *n, String *classname, String *newclassname, String *name, String *code) { - // modify method name - String *new_name = NewString(""); - Printv(new_name, newclassname, "_", Swig_name_set(name), NIL); - Setattr(n, "sym:name", new_name); - - // generate action code - String *action = NewString(""); - if (!code) { - code = NewString(""); - Printv(code, "((", classname, "*) arg1->obj)->", name, " = arg2;\n", NIL); - } - Append(action, code); - Setattr(n, "wrap:action", action); - - functionWrapper(n); - - Delete(code); // see wrap_get_variable() - Delete(action); - Delete(new_name); - } - /* --------------------------------------------------------------------- * staticmembervariableHandler() - * TODO: refactor * --------------------------------------------------------------------- */ virtual int staticmembervariableHandler(Node *n) { - Node *klass = Swig_methodclass(n); - String *name = Getattr(n, "sym:name"); - SwigType *type = Copy(Getattr(n, "type")); - String *classname = Getattr(klass, "classtype"); - String *newclassname = Getattr(klass, "sym:name"); - String *new_name = NewString(""); - String *code = NewString(""); - - // create code for 'get' function - Printv(code, "result = $mod", classname, "::", name, ";\n", NIL); - if (!SwigType_isbuiltin(SwigType_base(type)) && !SwigType_ispointer(type)) - Replaceall(code, "$mod", "&"); - else - Replaceall(code, "$mod", ""); - wrap_get_variable(n, classname, newclassname, name, code); - - // create parameter for 'set' function - Parm *p = NewParm(Getattr(n, "type"), "value"); - Setattr(p, "lname", "arg1"); - Setattr(n, "parms", p); - - if (!SwigType_isconst(type)) { - // create code for 'set' function - if (SwigType_isarray(Getattr(n, "type"))) { - code = NewString(""); - Printf(code, "if (arg2) {\n"); - Printf(code, "int i;\n"); - Printv(code, "for (i = 0; i < ", SwigType_array_getdim(Getattr(n, "type"), 0), "; ++i) {\n", NIL); - Printv(code, classname, "::", name, "[i] = arg2[i];\n", NIL); - Printf(code, "}\n}\n"); - } - else if (SwigType_isenum(Getattr(n, "type")) && Getattr(n, "unnamed")) { - code = NewString("* (int *) &"); - } - else - code = NewString(""); - Printv(code, classname, "::", name, " = $mod arg1;\nresult = arg1;\n", NIL); - if (!SwigType_isbuiltin(SwigType_base(type)) && !SwigType_ispointer(type)) - Replaceall(code, "$mod", "*"); - else - Replaceall(code, "$mod", ""); - wrap_set_variable(n, classname, newclassname, name, code); + SwigType *type = Getattr(n, "type"); + SwigType *tdtype = SwigType_typedef_resolve_all(type); + if (tdtype) { + type = tdtype; + Setattr(n, "type", type); } - - Setattr(n, "type", "void"); - - Delete(new_name); + SwigType *btype = SwigType_base(type); + if (SwigType_isarray(type) && !SwigType_isbuiltin(btype)) { + // this hack applies to member objects array (not ptrs.) + SwigType_add_pointer(btype); + SwigType_add_array(btype, NewStringf("%s", SwigType_array_getdim(type, 0))); + Setattr(n, "type", btype); + } + if (type) { + if (!SwigType_ispointer(type) && !SwigType_isreference(type)) + Setattr(n, "c:retval", "1"); + } Delete(type); - return SWIG_OK; + Delete(btype); + return Language::staticmembervariableHandler(n); } /* --------------------------------------------------------------------- @@ -1066,6 +1049,11 @@ virtual int membervariableHandler(Node *n) { SwigType *type = Getattr(n, "type"); + SwigType *tdtype = SwigType_typedef_resolve_all(type); + if (tdtype) { + type = tdtype; + Setattr(n, "type", type); + } SwigType *btype = SwigType_base(type); if (SwigType_isarray(type) && !SwigType_isbuiltin(btype)) { // this hack applies to member objects array (not ptrs.) @@ -1073,6 +1061,12 @@ SwigType_add_array(btype, NewStringf("%s", SwigType_array_getdim(type, 0))); Setattr(n, "type", btype); } + if (type) { + if (!SwigType_ispointer(type) && !SwigType_isreference(type)) + Setattr(n, "c:retval", "1"); + } + Delete(type); + Delete(btype); return Language::membervariableHandler(n); } @@ -1093,17 +1087,23 @@ if (baselist) { Iterator it; for (it = First(baselist); it.item; it = Next(it)) { - Printf(s, "result->typenames[%d] = Swig_typename_%s;\n", i++, Getattr(it.item, "sym:name")); + String *kname = Getattr(it.item, "sym:name"); + if (kname) + Printf(s, "result->typenames[%d] = Swig_typename_%s;\n", i++, kname); } } Printf(s, "result->typenames[%d] = 0;\n", i); Printf(s, "}\n"); + } - s = destroy_object; - - Printv(s, "if (strcmp(object->typenames[0], \"", classname, "\") == 0) {\n", NIL); - Printv(s, "if (object->obj)\ndelete (", classname, " *) (object->obj);\n", NIL); - Printf(s, "}\n"); + void add_to_destroy_object(Node *n, String *classname) { + String *s = destroy_object; + String *access = Getattr(n, "access"); + if (access && Cmp(access, "private") != 0) { + Printv(s, "if (strcmp(object->typenames[0], \"", classname, "\") == 0) {\n", NIL); + Printv(s, "if (object->obj)\ndelete (", classname, " *) (object->obj);\n", NIL); + Printf(s, "}\n"); + } } /* --------------------------------------------------------------------- @@ -1111,6 +1111,9 @@ * --------------------------------------------------------------------- */ virtual int constructorHandler(Node *n) { + String *access = Getattr(n, "access"); + if (Cmp(access, "private") == 0) + return SWIG_NOWRAP; if (Getattr(n, "copy_constructor")) return copyconstructorHandler(n); @@ -1125,7 +1128,6 @@ String *arg_lnames = NewString(""); ParmList *parms = Getattr(n, "parms"); - // prepare argument names Append(arg_lnames, Swig_cfunction_call(empty_string, parms)); @@ -1197,7 +1199,7 @@ Setattr(n, "c:stype", stype); // modify the constructor name - constr_name = Swig_name_construct(newclassname); + constr_name = Swig_name_copyconstructor(newclassname); Setattr(n, "name", constr_name); Setattr(n, "sym:name", constr_name); @@ -1259,6 +1261,7 @@ // create action code if (except_flag) { + add_to_destroy_object(n, classname); Printf(code, "SWIG_remove_registry_entry(carg1);\n"); Printf(code, "SWIG_destroy_object(carg1);"); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ma...@us...> - 2009-04-15 23:30:19
|
Revision: 11189 http://swig.svn.sourceforge.net/swig/?rev=11189&view=rev Author: maciekd Date: 2009-04-15 23:30:16 +0000 (Wed, 15 Apr 2009) Log Message: ----------- Many major improvements. Almost all testsuite compiles now. Modified Paths: -------------- branches/gsoc2008-maciekd/Examples/c/check.list branches/gsoc2008-maciekd/Examples/test-suite/c/Makefile.in branches/gsoc2008-maciekd/Examples/test-suite/c/cast_operator_runme.c branches/gsoc2008-maciekd/Examples/test-suite/common.mk branches/gsoc2008-maciekd/Examples/test-suite/operator_overload.i branches/gsoc2008-maciekd/Examples/test-suite/special_variables.i branches/gsoc2008-maciekd/Lib/c/c.swg branches/gsoc2008-maciekd/Lib/c/cexcept.swg branches/gsoc2008-maciekd/Lib/c/cproxy.swg branches/gsoc2008-maciekd/Lib/c/std_string.i branches/gsoc2008-maciekd/Source/Modules/c.cxx Added Paths: ----------- branches/gsoc2008-maciekd/Examples/GIFPlot/C/ branches/gsoc2008-maciekd/Examples/GIFPlot/C/Makefile branches/gsoc2008-maciekd/Examples/GIFPlot/C/gifplot.i branches/gsoc2008-maciekd/Examples/c/std_vector/ branches/gsoc2008-maciekd/Examples/c/std_vector/Makefile branches/gsoc2008-maciekd/Examples/c/std_vector/example.cxx branches/gsoc2008-maciekd/Examples/c/std_vector/example.h branches/gsoc2008-maciekd/Examples/c/std_vector/example.i branches/gsoc2008-maciekd/Examples/c/std_vector/runme.c branches/gsoc2008-maciekd/Lib/c/std_common.i branches/gsoc2008-maciekd/Lib/c/std_except.i branches/gsoc2008-maciekd/Lib/c/std_map.i branches/gsoc2008-maciekd/Lib/c/std_pair.i branches/gsoc2008-maciekd/Lib/c/std_vector.i branches/gsoc2008-maciekd/Lib/c/stl.i branches/gsoc2008-maciekd/Lib/c/typemaps.i Added: branches/gsoc2008-maciekd/Examples/GIFPlot/C/Makefile =================================================================== --- branches/gsoc2008-maciekd/Examples/GIFPlot/C/Makefile (rev 0) +++ branches/gsoc2008-maciekd/Examples/GIFPlot/C/Makefile 2009-04-15 23:30:16 UTC (rev 11189) @@ -0,0 +1,17 @@ +TOP = ../.. +SWIG = $(TOP)/../preinst-swig +SWIGOPT = -I../Include +SRCS = +TARGET = gifplot +INTERFACE = gifplot.i +LIBS = -L.. -lgifplot +INCLUDES = -I../Include + +all:: + $(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' LIBS='$(LIBS)' \ + SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' c + +clean: + rm -f *.o *.out *.so *.a *.dll *.dylib *.exe *_wrap* *_proxy* *~ runme + +check: all Added: branches/gsoc2008-maciekd/Examples/GIFPlot/C/gifplot.i =================================================================== --- branches/gsoc2008-maciekd/Examples/GIFPlot/C/gifplot.i (rev 0) +++ branches/gsoc2008-maciekd/Examples/GIFPlot/C/gifplot.i 2009-04-15 23:30:16 UTC (rev 11189) @@ -0,0 +1,15 @@ +/* Oh what the heck, let's just grab the whole darn header file + and see what happens. */ + +%module gifplot +%{ + +/* Note: You still need this part because the %include directive + merely causes SWIG to interpret the contents of a file. It doesn't + include the right include headers for the resulting C code */ + +#include "../Include/gifplot.h" + +%} + +%include gifplot.h Modified: branches/gsoc2008-maciekd/Examples/c/check.list =================================================================== --- branches/gsoc2008-maciekd/Examples/c/check.list 2009-04-13 21:23:07 UTC (rev 11188) +++ branches/gsoc2008-maciekd/Examples/c/check.list 2009-04-15 23:30:16 UTC (rev 11189) @@ -1,4 +1,5 @@ # see top-level Makefile.in +simple class -simple +std_vector exception Added: branches/gsoc2008-maciekd/Examples/c/std_vector/Makefile =================================================================== --- branches/gsoc2008-maciekd/Examples/c/std_vector/Makefile (rev 0) +++ branches/gsoc2008-maciekd/Examples/c/std_vector/Makefile 2009-04-15 23:30:16 UTC (rev 11189) @@ -0,0 +1,30 @@ +TOP = ../.. +SWIG = $(TOP)/../preinst-swig -debug-module 4 > tree.txt +CXXSRCS = example.cxx +TARGET = example +INTERFACE = example.i +RUNME = runme.c +PROXY = example_proxy.c +INCLUDES = +MEMTOOL = valgrind --leak-check=full + +all:: + $(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \ + TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' INCLUDES='$(INCLUDES)' c_cpp + $(MAKE) -f $(TOP)/Makefile RUNME='$(RUNME)' PROXY='$(PROXY)' \ + TARGET='$(TARGET)' c_compile + +run: + env LD_LIBRARY_PATH=. ./runme + +memchk: + $(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \ + TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' CXXFLAGS='-g' INCLUDES='$(INCLUDES)' c_cpp + $(MAKE) -f $(TOP)/Makefile RUNME='$(RUNME)' PROXY='$(PROXY)' \ + TARGET='$(TARGET)' CFLAGS='-g' c_compile + env LD_LIBRARY_PATH=. $(MEMTOOL) ./runme + +clean: + rm -f *.o *.out *.so *.a *.dll *.dylib *.exe *_wrap* *_proxy* *~ runme + +check: all Added: branches/gsoc2008-maciekd/Examples/c/std_vector/example.cxx =================================================================== --- branches/gsoc2008-maciekd/Examples/c/std_vector/example.cxx (rev 0) +++ branches/gsoc2008-maciekd/Examples/c/std_vector/example.cxx 2009-04-15 23:30:16 UTC (rev 11189) @@ -0,0 +1,2 @@ +/* File : example.c */ + Added: branches/gsoc2008-maciekd/Examples/c/std_vector/example.h =================================================================== --- branches/gsoc2008-maciekd/Examples/c/std_vector/example.h (rev 0) +++ branches/gsoc2008-maciekd/Examples/c/std_vector/example.h 2009-04-15 23:30:16 UTC (rev 11189) @@ -0,0 +1,18 @@ +/* File : example.h */ + +#include <string> +#include <vector> + +class A { +public: + A() : name(""), value(0) {} + A(std::string str, int i) : name(str), value(i) {} + std::string name; + int value; +}; + +class Klass { +public: + std::vector<int> vi; + std::vector<A> va; +}; Added: branches/gsoc2008-maciekd/Examples/c/std_vector/example.i =================================================================== --- branches/gsoc2008-maciekd/Examples/c/std_vector/example.i (rev 0) +++ branches/gsoc2008-maciekd/Examples/c/std_vector/example.i 2009-04-15 23:30:16 UTC (rev 11189) @@ -0,0 +1,14 @@ +/* File : example.i */ +%module example +%include <std_string.i> +%include <std_vector.i> + +%{ +#include "example.h" +%} + +/* Let's just grab the original header file here */ +%include "example.h" + +%template(Vint) std::vector<int>; +%template(VA) std::vector<A>; Added: branches/gsoc2008-maciekd/Examples/c/std_vector/runme.c =================================================================== --- branches/gsoc2008-maciekd/Examples/c/std_vector/runme.c (rev 0) +++ branches/gsoc2008-maciekd/Examples/c/std_vector/runme.c 2009-04-15 23:30:16 UTC (rev 11189) @@ -0,0 +1,37 @@ +#include "example_proxy.h" + +int main() { + Klass *klass = new_Klass(); + Vint *vint = Klass_vi_get(klass); + VA *va = Klass_va_get(klass); + + printf("Vector of ints:\n"); + printf("size=%d\ncapacity=%d\n\n", Vint_size(vint), Vint_capacity(vint)); + + int i; + for (i = 0; i < 10; i++) + Vint_push_back(vint, i*i); + + printf("size=%d\ncapacity=%d\n\n", Vint_size(vint), Vint_capacity(vint)); + + for (i = 0; i < Vint_size(vint); i++) + printf("%d%c", Vint_at(vint, i), i+1 == Vint_size(vint) ? '\n' : ','); + + Vint_clear(vint); + Vint_reserve(vint, 100); + printf("\nsize=%d\ncapacity=%d\n", Vint_size(vint), Vint_capacity(vint)); + + printf("\nVector of objects:\n"); + + for (i = 0; i < 10; i++) { + A *a = new_A_std_string_i("hello", i); + VA_push_back(va, a); + } + + for (i = 0; i < VA_size(va); i++) { + A *a = VA_at(va, i); + printf("%s %d\n", A_name_get(a), A_value_get(a)); + } + + SWIG_exit(0); +} \ No newline at end of file Modified: branches/gsoc2008-maciekd/Examples/test-suite/c/Makefile.in =================================================================== --- branches/gsoc2008-maciekd/Examples/test-suite/c/Makefile.in 2009-04-13 21:23:07 UTC (rev 11188) +++ branches/gsoc2008-maciekd/Examples/test-suite/c/Makefile.in 2009-04-15 23:30:16 UTC (rev 11189) @@ -10,23 +10,29 @@ top_srcdir = @top_srcdir@/.. top_builddir = @top_builddir@/.. -C_TEST_CASES = +include $(srcdir)/../common.mk -CPP_TEST_CASES = cast_operator \ - char_strings \ - exception_order \ - exception_partial_info \ - enums \ - enum_plus - # # BROKEN TEST CASES: -# default_constructor - last case: when using %extend generates 2 ctors wrappers, +# default_constructor - last case fail: using %extend generates 2 ctors wrappers, # both using new, while the class constructor is private +# extend* - directive %extend is not fully supported yet +# li* - not supported at all yet +# long_long_apply - no INPUT, OUTPUT, INOUT typemaps defined +# template* - not fully supported yet # -CPP_TEST_BROKEN_CXX = default_constructor -include $(srcdir)/../common.mk +C_CPP_TEST_BROKEN = \ + default_constructor \ + extend \ + extend_default \ + extend_placement \ + li_attribute \ + li_boost_shared_ptr \ + li_carrays \ + li_cdata \ + li_windows \ + long_long_apply INTERFACEDIR = ../../ Modified: branches/gsoc2008-maciekd/Examples/test-suite/c/cast_operator_runme.c =================================================================== --- branches/gsoc2008-maciekd/Examples/test-suite/c/cast_operator_runme.c 2009-04-13 21:23:07 UTC (rev 11188) +++ branches/gsoc2008-maciekd/Examples/test-suite/c/cast_operator_runme.c 2009-04-15 23:30:16 UTC (rev 11189) @@ -1,12 +1,12 @@ -#include <stdio.h> - -#include "cast_operator/cast_operator_proxy.h" - -int main() { - A *a = new_A(); - if (strcmp(A_tochar(a), "hi")) - fprintf(stderr, "cast failed\n"); - delete_A(a); - SWIG_exit(0); -} - +#include <stdio.h> + +#include "cast_operator/cast_operator_proxy.h" + +int main() { + A *a = new_A(); + if (strcmp(A_tochar(a), "hi")) + fprintf(stderr, "cast failed\n"); + delete_A(a); + SWIG_exit(0); +} + Modified: branches/gsoc2008-maciekd/Examples/test-suite/common.mk =================================================================== --- branches/gsoc2008-maciekd/Examples/test-suite/common.mk 2009-04-13 21:23:07 UTC (rev 11188) +++ branches/gsoc2008-maciekd/Examples/test-suite/common.mk 2009-04-15 23:30:16 UTC (rev 11189) @@ -73,6 +73,7 @@ # Broken C++ test cases. (Can be run individually using make testcase.cpptest.) CPP_TEST_BROKEN += \ + abstract_access \ constants \ cpp_broken \ exception_partial_info \ Modified: branches/gsoc2008-maciekd/Examples/test-suite/operator_overload.i =================================================================== --- branches/gsoc2008-maciekd/Examples/test-suite/operator_overload.i 2009-04-13 21:23:07 UTC (rev 11188) +++ branches/gsoc2008-maciekd/Examples/test-suite/operator_overload.i 2009-04-15 23:30:16 UTC (rev 11189) @@ -15,6 +15,11 @@ SWIGWARN_IGNORE_OPERATOR_LOR); #endif +#if defined(SWIGC) +%warnfilter(SWIGWARN_IGNORE_OPERATOR_EQ, + SWIGWARN_IGNORE_OPERATOR_PLUSPLUS); +#endif + #if !defined(SWIGLUA) && !defined(SWIGR) %rename(Equal) operator =; %rename(PlusEqual) operator +=; Modified: branches/gsoc2008-maciekd/Examples/test-suite/special_variables.i =================================================================== --- branches/gsoc2008-maciekd/Examples/test-suite/special_variables.i 2009-04-13 21:23:07 UTC (rev 11188) +++ branches/gsoc2008-maciekd/Examples/test-suite/special_variables.i 2009-04-15 23:30:16 UTC (rev 11189) @@ -27,13 +27,29 @@ %} %rename(ExceptionVars) Space::exceptionvars; + +#ifdef SWIGC + %exception Space::exceptionvars %{ $action + result = (char*)$symname(1.0,2.0).c_str(); // Should expand to ExceptionVars + result = (char*)$name(3.0,4.0).c_str(); // Should expand to Space::exceptionvars + // above will not compile if the variables are not expanded properly + result = "$action $name $symname $overname $wrapname"; +%} + +#else + +%exception Space::exceptionvars %{ + $action result = $symname(1.0,2.0); // Should expand to ExceptionVars result = $name(3.0,4.0); // Should expand to Space::exceptionvars // above will not compile if the variables are not expanded properly result = "$action $name $symname $overname $wrapname"; %} + +#endif + %inline %{ namespace Space { std::string exceptionvars(double i, double j) { @@ -43,8 +59,22 @@ %} +#ifdef SWIGC + %exception Space::overloadedmethod %{ $action + result = (char*)Space::$symname(1.0).c_str(); + result = (char*)$name().c_str(); + result = (char*)$name(2.0).c_str(); + // above will not compile if the variables are not expanded properly + result = "$action $name $symname $overname $wrapname"; + // $decl +%} + +#else + +%exception Space::overloadedmethod %{ + $action result = Space::$symname(1.0); result = $name(); result = $name(2.0); @@ -53,6 +83,8 @@ // $decl %} +#endif + %inline %{ namespace Space { std::string overloadedmethod(double j) { Modified: branches/gsoc2008-maciekd/Lib/c/c.swg =================================================================== --- branches/gsoc2008-maciekd/Lib/c/c.swg 2009-04-13 21:23:07 UTC (rev 11188) +++ branches/gsoc2008-maciekd/Lib/c/c.swg 2009-04-15 23:30:16 UTC (rev 11189) @@ -8,7 +8,7 @@ // WARNING: passing function pointers from C as parameters of type (or as // return values) SWIGTYPE (CLASS::*) causes cast of C function to type // void(*)() and it is user's responsibility to properly handle this -// function's arguments and return value. +// function's arguments and return value. See 'cpp_basic' test for details. %insert("runtime") "clabels.swg" %insert("proxy_header") "cproxy.swg" @@ -28,25 +28,25 @@ %fragment("stdbool_inc", "proxy_header") {#include <stdbool.h>} // typemaps for function parameters +%typemap(ctype) void, short, int, long, long long, char, float, double "$1_ltype" +%typemap(ctype) unsigned short, unsigned int, unsigned long, unsigned long long, unsigned char "$1_ltype" +%typemap(ctype) void *, short *, int *, long *, long long *, char *, float *, double * "$1_ltype" +%typemap(ctype) void **, short **, int **, long **, long long **, char **, float **, double ** "$1_ltype" +%typemap(ctype) unsigned short *, unsigned int *, unsigned long *, unsigned long long *, unsigned char * "$1_ltype" +%typemap(ctype) unsigned short **, unsigned int **, unsigned long **, unsigned long long **, unsigned char ** "$1_type" +%typemap(ctype) short &, int &, long &, long long &, char &, float &, double & "$1_ltype" +%typemap(ctype) unsigned short &, unsigned int &, unsigned long &, unsigned long long &, unsigned char & "$1_ltype" +%typemap(ctype) const short, const int, const long, const long long, const char, const float, const double "$1_ltype" +%typemap(ctype) const short &, const int &, const long &, const long long &, const char &, const float &, const double & "$1_ltype" +%typemap(ctype) const unsigned short, const unsigned int, const unsigned long, const unsigned long long, const unsigned char "$1_type" +%typemap(ctype) const unsigned short &, const unsigned int &, const unsigned long &, const unsigned long long &, const unsigned char & "$1_ltype" +%typemap(ctype) const void *, const short *, const int *, const long *, const long long *, const char *, const float *, const double * "$1_type" +%typemap(ctype) short *&, int *&, long *&, long long *&, char *&, float *&, double *& "$1_ltype" +%typemap(ctype) const short *&, const int *&, const long *&, const long long *&, const char *&, const float *&, const double *& "$1_basetype **" +%typemap(ctype) short [ANY], int [ANY], long [ANY], long long [ANY], char [ANY], float [ANY], double [ANY], unsigned char [ANY], unsigned int [ANY] "/*aaa*/ $1_ltype" +%typemap(ctype) void * [ANY], short * [ANY], int * [ANY], long * [ANY], long long * [ANY], char * [ANY], float * [ANY], double * [ANY] "/*bbb*/ $1_ltype" -%typemap(ctype) void, short, int, long, char, float, double "$1_ltype" -%typemap(ctype) unsigned short, unsigned int, unsigned long, unsigned char "$1_ltype" -%typemap(ctype) void *, short *, int *, long *, char *, float *, double * "$1_ltype" -%typemap(ctype) void **, short **, int **, long **, char **, float **, double ** "$1_ltype" -%typemap(ctype) unsigned short *, unsigned int *, unsigned long *, unsigned char * "$1_ltype" -%typemap(ctype) unsigned short **, unsigned int **, unsigned long **, unsigned char ** "$1_type" -%typemap(ctype) short &, int &, long &, char &, float &, double & "$1_ltype" -%typemap(ctype) unsigned short &, unsigned int &, unsigned long &, unsigned char & "$1_ltype" -%typemap(ctype) const short &, const int &, const long &, const char &, const float &, const double & "$1_ltype" -%typemap(ctype) const short, const int, const long, const char, const float, const double "$1_ltype" -%typemap(ctype) const unsigned short, const unsigned int, const unsigned long, const unsigned char "$1_type" -%typemap(ctype) const void *, const short *, const int *, const long *, const char *, const float *, const double * "/*hhhh*/$1_type" -%typemap(ctype) short *&, int *&, long *&, char *&, float *&, double *& "$1_ltype" -%typemap(ctype) const short *&, const int *&, const long *&, const char *&, const float *&, const double *& "$1_basetype **" -%typemap(ctype) short [ANY], int [ANY], long [ANY], char [ANY], float [ANY], double [ANY], unsigned char [ANY], unsigned int [ANY] "/*aaa*/ $1_ltype" -%typemap(ctype) void * [ANY], short * [ANY], int * [ANY], long * [ANY], char * [ANY], float * [ANY], double * [ANY] "/*bbb*/ $1_ltype" - -// special cases of array passing - does not work for objects +// special cases of array passing - does not intended to be used for objects %typemap(ctype) SWIGTYPE [] "$1_ltype" %typemap(ctype) SWIGTYPE ((&)[ANY]) "$1_basetype **" @@ -54,40 +54,41 @@ %typemap(ctype) SWIGTYPE "SwigObj *" %typemap(ctype) SWIGTYPE * "SwigObj *" %typemap(ctype) SWIGTYPE & "SwigObj *" -%typemap(ctype) SWIGTYPE [ANY][ANY], SWIGTYPE ** "/* whoa */ $*1_ltype *" -%typemap(ctype) SWIGTYPE *[ANY] "/*ooooh*/ $*1_ltype" -//%typemap(ctype) SWIGTYPE * [ANY][ANY], SWIGTYPE *** "SwigObj ***" +%typemap(ctype) SWIGTYPE [ANY][ANY], SWIGTYPE ** "/* whoa */ SwigObj ***" +%typemap(ctype) SWIGTYPE *[ANY] "/*ooooh*/ SwigObj **" %typemap(ctype) SWIGTYPE *& "/* *& */ SwigObj **" %typemap(ctype) enum SWIGTYPE "int" +%typemap(ctype) enum SWIGTYPE & "int *" %typemap(ctype, fragment="fptr_decl", fragment="fptr_decl_proxy") SWIGTYPE (CLASS::*) "SWIG_CPP_FP" %typemap(ctype, fragment="stdbool_inc") bool, bool *, bool **, const bool, const bool *, bool * [ANY] "$1_type" %typemap(ctype, fragment="stdbool_inc") bool & "$1_ltype" %typemap(ctype, fragment="stdbool_inc") const bool & "$1_ltype const" -%typemap(in) short, int, long, char, float, double "$1 = ($1_ltype) $input;" -%typemap(in) void *, short *, int *, long *, char *, float *, double * "$1 = ($1_ltype) $input;" -%typemap(in) void **, short **, int **, long **, char **, float **, double ** "$1 = ($1_basetype **) $input;" -%typemap(in) unsigned short *, unsigned int *, unsigned long *, unsigned char * "$1 = ($1_ltype) $input;" -%typemap(in) unsigned short **, unsigned int **, unsigned long **, unsigned char ** "$1 = ($1_ltype) $input;" -%typemap(in) const void *, const short *, const int *, const long *, const char *, const float *, const double * "$1 = ($1_ltype) $input;" -%typemap(in) const unsigned short *, const unsigned int *, const unsigned long *, const unsigned char * "$1 = ($1_ltype) $input;" -%typemap(in) unsigned short, unsigned int, unsigned long, unsigned char "$1 = ($1_ltype) $input;" -%typemap(in) short &, int &, long &, char &, float &, double &, bool & "$1 = ($1_ltype) $input;" -%typemap(in) const short &, const int &, const long &, const char &, const float &, const double & "$1 = ($1_ltype) $input;" -%typemap(in) unsigned short &, unsigned int &, unsigned long &, unsigned char & "$1 = ($1_ltype) $input;" -%typemap(in) const unsigned short &, const unsigned int &, const unsigned long &, const unsigned char & "$1 = ($1_ltype) $input;" +%typemap(in) short, int, long, long long, char, float, double "$1 = ($1_ltype) $input;" +%typemap(in) void *, short *, int *, long *, long long *, char *, float *, double * "$1 = ($1_ltype) $input;" +%typemap(in) void **, short **, int **, long **, long long **, char **, float **, double ** "$1 = ($1_basetype **) $input;" +%typemap(in) unsigned short *, unsigned int *, unsigned long *, unsigned long long *, unsigned char * "$1 = ($1_ltype) $input;" +%typemap(in) unsigned short **, unsigned int **, unsigned long **, unsigned long long **, unsigned char ** "$1 = ($1_ltype) $input;" +%typemap(in) const void *, const short *, const int *, const long *, const long long *, const char *, const float *, const double * "$1 = ($1_ltype) $input;" +%typemap(in) const unsigned short *, const unsigned int *, const unsigned long *, const unsigned long long *, const unsigned char * "$1 = ($1_ltype) $input;" +%typemap(in) unsigned short, unsigned int, unsigned long, unsigned long long, unsigned char "$1 = ($1_ltype) $input;" +%typemap(in) short &, int &, long &, long long &, char &, float &, double &, bool & "$1 = ($1_ltype) $input;" +%typemap(in) const short &, const int &, const long &, const long long &, const char &, const float &, const double & "$1 = ($1_ltype) $input;" +%typemap(in) unsigned short &, unsigned int &, unsigned long &, unsigned long long &, unsigned char & "$1 = ($1_ltype) $input;" +%typemap(in) const unsigned short &, const unsigned int &, const unsigned long &, const unsigned long long &, const unsigned char & "$1 = ($1_ltype) $input;" -%typemap(in) short *&, int *&, long *&, char *&, float *&, double *& "$1 = ($1_ltype) $input;" -%typemap(in) const short *&, const int *&, const long *&, const char *&, const float *&, const double *& "$1 = ($1_ltype) $input;" -%typemap(in) short [ANY], int [ANY], long [ANY], char [ANY], float [ANY], double [ANY], unsigned char [ANY] "$1 = ($1_basetype *) $input;" -%typemap(in) void * [ANY], short * [ANY], int * [ANY], long * [ANY], char * [ANY], float * [ANY], double * [ANY] "$1 = ($1_basetype *) $input;" +%typemap(in) short *&, int *&, long *&, long long *&, char *&, float *&, double *& "$1 = ($1_ltype) $input;" +%typemap(in) const short *&, const int *&, const long *&, const long *&, const char *&, const float *&, const double *& "$1 = ($1_ltype) $input;" +%typemap(in) short [ANY], int [ANY], long [ANY], long long [ANY], char [ANY], float [ANY], double [ANY], unsigned char [ANY] "$1 = ($1_basetype *) $input;" +%typemap(in) void * [ANY], short * [ANY], int * [ANY], long * [ANY], long long * [ANY], char * [ANY], float * [ANY], double * [ANY] "$1 = ($1_basetype *) $input;" %typemap(in, fragment="stdbool_inc") bool, bool *, bool **, const bool, const bool * "$1 = ($1_ltype) $input;" %typemap(in, fragment="stdbool_inc") bool & "$1 = ($1_basetype *) $input;" %typemap(in, fragment="stdbool_inc") const bool &, const bool * "$1 = ($1_basetype *) $input;" -%typemap(in) enum SWIGTYPE "$1 = ($1_type) $input;" +%typemap(in) enum SWIGTYPE "$1 = ($1_ltype) $input;" +%typemap(in) enum SWIGTYPE & "$1 = ($1_ltype) $input;" %typemap(in) SWIGTYPE [] "$1 = ($1_ltype) $input;" %typemap(in) SWIGTYPE ((&)[ANY]) "$1 = ($1_ltype) $input;" @@ -142,13 +143,10 @@ $1 = ($1_ltype) 0; } -/* - * unsupported yet %typemap(freearg) SWIGTYPE * [ANY], SWIGTYPE * [ANY][ANY], SWIGTYPE **, SWIGTYPE *** { if ($input) free($input); } -*/ %typemap(in) SWIGTYPE & { if ($input) @@ -166,70 +164,151 @@ // typemaps for return values -%typemap(couttype) void, short, int, long, char, float, double "$1_ltype" -%typemap(couttype) unsigned short, unsigned int, unsigned long, unsigned char, signed char "$1_ltype" -%typemap(couttype) void *, short *, int *, long *, char *, float *, double*, unsigned char *, signed char * "$1_ltype" -%typemap(couttype) const short, const int, const long, const char, const float, const double "$1_ltype" -%typemap(couttype) const void *, const short *, const int *, const long *, const char *, const float *, const double * "$1_ltype" -%typemap(couttype) short &, int &, long &, char &, float &, double & "$1_ltype" -%typemap(couttype) const short &, const int &, const long &, const char &, const float &, const double & "$1_basetype const *" -%typemap(couttype) short *&, int *&, long *&, char *&, float *&, double *& "$1_ltype" -%typemap(couttype) const short *&, const int *&, const long *&, const char *&, const float *&, const double *& "$1_ltype" -%typemap(couttype) short [ANY], int [ANY], long [ANY], char [ANY], float [ANY], double [ANY], unsigned char [ANY], signed char [ANY], unsigned int [ANY] "$1_ltype" -%typemap(couttype) short * [ANY], int * [ANY], long * [ANY], char * [ANY], float * [ANY], double * [ANY] "/*builtin * [ANY]*/ $1_ltype" -%typemap(couttype) short **, int **, long **, char **, float **, double ** "$1_ltype" +// void +%typemap(couttype) void "void" +%typemap(couttype) void*, const void* "void *" + +// short +%typemap(couttype) short, const short "short" +%typemap(couttype) short*, short&, short[ANY], short[] "short *" +%typemap(couttype) const short&, const short*, const short[ANY], const short[] "const short *" +%typemap(couttype) unsigned short "unsigned short" +%typemap(couttype) const unsigned short "const unsigned short" +%typemap(couttype) unsigned short*, unsigned short&, unsigned short*, unsigned short[ANY], unsigned short[] "unsigned short *" +%typemap(couttype) const unsigned short*, const unsigned short&, const unsigned short[ANY], const unsigned short[] "const unsigned short *" +%typemap(couttype) short**, short*&, short*[ANY], short[ANY][ANY] "short **" +%typemap(couttype) const short**, const short*&, const short*[ANY], const short[ANY][ANY] "const short **" +%typemap(couttype) unsigned short**, unsigned short*&, unsigned short*[ANY], unsigned short[ANY][ANY] "unsigned short **" +%typemap(couttype) const unsigned short**,const unsigned short*&, const unsigned short[ANY][ANY] "const unsigned short **" + +// int +%typemap(couttype) int, const int "int" +%typemap(couttype) int*, int&, int[ANY], int[] "int *" +%typemap(couttype) const int&, const int*, const int[ANY], const int[] "const int *" +%typemap(couttype) unsigned int "unsigned int" +%typemap(couttype) const unsigned int "unsigned int" +%typemap(couttype) unsigned int*, unsigned int&, unsigned int*, unsigned int[ANY], unsigned int[] "unsigned int *" +%typemap(couttype) const unsigned int*, const unsigned int&, const unsigned int[ANY], const unsigned int[] "const unsigned int *" +%typemap(couttype) int**, int*&, int*[ANY], int[ANY][ANY] "int **" +%typemap(couttype) const int**, const int*&, const int*[ANY], const int[ANY][ANY] "const int **" +%typemap(couttype) unsigned int**, unsigned int*&, unsigned int*[ANY], unsigned int[ANY][ANY] "unsigned int **" +%typemap(couttype) const unsigned int**,const unsigned int*&, const unsigned int[ANY][ANY] "const unsigned int **" + +// long +%typemap(couttype) long, const long "long" +%typemap(couttype) long*, long&, long[ANY], long[] "long *" +%typemap(couttype) const long&, const long*, const long[ANY], const long[] "const long *" +%typemap(couttype) unsigned long "unsigned long" +%typemap(couttype) const unsigned long "const unsigned long" +%typemap(couttype) unsigned long*, unsigned long&, unsigned long*, unsigned long[ANY], unsigned long[] "unsigned long *" +%typemap(couttype) const unsigned long*, const unsigned long&, const unsigned long[ANY], const unsigned long[] "const unsigned long *" +%typemap(couttype) long**, long*&, long*[ANY], long[ANY][ANY] "long **" +%typemap(couttype) const long**, const long*&, const long*[ANY], const long[ANY][ANY] "const long **" +%typemap(couttype) unsigned long**, unsigned long*&, unsigned long*[ANY], unsigned long[ANY][ANY] "unsigned long **" +%typemap(couttype) const unsigned long**,const unsigned long*&, const unsigned long[ANY][ANY] "const unsigned long **" + +// long long +%typemap(couttype) long long, const long long "long long" +%typemap(couttype) long long*, long long&, long long[ANY], long long[] "long long *" +%typemap(couttype) const long long&, const long long*, const long long[ANY], const long long[] "const long long *" +%typemap(couttype) unsigned long long "unsigned long long" +%typemap(couttype) const unsigned long long "const unsigned long long" +%typemap(couttype) unsigned long long*, unsigned long long&, unsigned long long*, unsigned long long[ANY], unsigned long long[] "unsigned long long *" +%typemap(couttype) const unsigned long long*, const unsigned long long&, const unsigned long long[ANY], const unsigned long long[] "const unsigned long long *" +%typemap(couttype) long long**, long long*&, long long*[ANY], long long[ANY][ANY] "long long **" +%typemap(couttype) const long long**, const long long*&, const long long*[ANY], const long long[ANY][ANY] "const long long **" +%typemap(couttype) unsigned long long**, unsigned long long*&, unsigned long long*[ANY], unsigned long long[ANY][ANY] "unsigned long long **" +%typemap(couttype) const unsigned long long**,const unsigned long long*&, const unsigned long long[ANY][ANY] "const unsigned long long **" + +// char: signed/unsigned +%typemap(couttype) char, const char "char" +%typemap(couttype) char*, char&, char[ANY], char[] "$1_ltype" +%typemap(couttype) const char&, const char*, const char[ANY], const char[] "const char *" +%typemap(couttype) char**, char*&, char*[ANY], char[ANY][ANY] "char **" +%typemap(couttype) const char**, const char*&, const char*[ANY], const char[ANY][ANY] "char **" +%typemap(couttype) signed char**, signed char*&, signed char*[ANY], signed char[ANY][ANY] "signed char **" +%typemap(couttype) const signed char**, const signed char*&, const signed char[ANY][ANY] "const signed char **" +%typemap(couttype) signed char "signed char" +%typemap(couttype) const signed char "const signed char" +%typemap(couttype) signed char*, signed char&, signed char*, signed char[ANY], signed char[] "signed char *" +%typemap(couttype) const signed char*, const signed char&, const signed char[ANY], const signed char[] "const $1_ltype" +%typemap(couttype) unsigned char**, unsigned char*&, unsigned char*[ANY], unsigned char[ANY][ANY] "unsigned char **" +%typemap(couttype) const unsigned char**, const unsigned char*&, const unsigned char[ANY][ANY] "const unsigned char **" +%typemap(couttype) unsigned char "unsigned char" +%typemap(couttype) const unsigned char "const unsigned char" +%typemap(couttype) unsigned char*, unsigned char&, unsigned char*, unsigned char[ANY], unsigned char[] "unsigned char *" +%typemap(couttype) const unsigned char*, const unsigned char&, const unsigned char[ANY], const unsigned char[] "const unsigned char *" + +// float +%typemap(couttype) float, const float "float" +%typemap(couttype) float*, float&, float[ANY], float[] "float *" +%typemap(couttype) const float&, const float*, const float[ANY], const float[] "const float *" +%typemap(couttype) float**, float*&, const float*&, float*[ANY], float[ANY][ANY] "float **" +%typemap(couttype) const float**, const float*[ANY], const float[ANY][ANY] "const float **" + +// double +%typemap(couttype) double, const double "double" +%typemap(couttype) double*, double&, double[ANY], double[] "double *" +%typemap(couttype) const double&, const double*, const double[ANY], const double[] "const double *" +%typemap(couttype) double**, double*&, const double*&, double*[ANY], double[ANY][ANY] "double **" +%typemap(couttype) const double**, const double*[ANY], const double[ANY][ANY] "const double **" + +// objects %typemap(couttype) SWIGTYPE "SwigObj *" %typemap(couttype) SWIGTYPE * "/*aaaaaa*/SwigObj *" %typemap(couttype) SWIGTYPE & "SwigObj *" %typemap(couttype) SWIGTYPE *& "SwigObj **" %typemap(couttype) SWIGTYPE [ANY] "/*SWIGTYPE [ANY]*/ SwigObj **" -%typemap(couttype) SWIGTYPE * [ANY], SWIGTYPE ** "/*SWIGTYPE *[ANY]/** */ SwigObj **" -//%typemap(couttype) SWIGTYPE * [ANY][ANY], SWIGTYPE *** "SwigObj ***" +%typemap(couttype) SWIGTYPE * [ANY] "/*SWIGTYPE *[ANY] */ SwigObj **" +%typemap(couttype) SWIGTYPE ** "/*SWIGTYPE ** */ SwigObj **" %typemap(couttype) enum SWIGTYPE "int" +%typemap(couttype) enum SWIGTYPE &, enum SWIGTYPE * "int *" %typemap(couttype, fragment="fptr_decl") SWIGTYPE (CLASS::*) "SWIG_CPP_FP" %typemap(couttype, fragment="stdbool_inc") bool, bool *, const bool, const bool * "$1_ltype" %typemap(couttype, fragment="stdbool_inc") bool & "$1_basetype*" %typemap(couttype, fragment="stdbool_inc") const bool & "$1_basetype const *" -%typemap(out) short, int, long, char, float, double "$result = $1;" -%typemap(out) void*, short*, int*, long*, char*, float*, double* "$result = $1;" -%typemap(out) const short, const int, const long, const char, const float, const double "$result = ($1_ltype) $1;" -%typemap(out) const void *, const short *, const int *, const long *, const char *, const float *, const double * "$result = ($1_ltype) $1;" -%typemap(out) unsigned short, unsigned int, unsigned long, unsigned char, signed char "$result = $1;" -%typemap(out) unsigned short *, unsigned int *, unsigned long *, unsigned char *, signed char * "$result = $1;" -%typemap(out) short &, int &, long &, char &, float &, double & "$result = $1;" -%typemap(out) unsigned short &, unsigned int &, unsigned long &, unsigned char &, signed char & "$result = $1;" -%typemap(out) const short &, const int &, const long &, const char &, const float &, const double & "$result = $1;" -%typemap(out) const unsigned short &, const unsigned int &, const unsigned long &, const unsigned char &, const signed char & "$result = $1;" -%typemap(out) short *&, int *&, long *&, char *&, float *&, double *& "$result = $1;" -%typemap(out) const short *&, const int *&, const long *&, const char *&, const float *&, const double *& "$result = $1;" -%typemap(out) short [ANY], int [ANY], long [ANY], char [ANY], float [ANY], double [ANY], unsigned char [ANY], signed char [ANY], unsigned int [ANY] "$result = $1;" -%typemap(out) short * [ANY], int * [ANY], long * [ANY], char * [ANY], float * [ANY], double * [ANY] "$result = $1;" -%typemap(out) short **, int **, long **, char **, float **, double ** "$result = $1;" +%typemap(out) short, int, long, long long, char, float, double "$result = $1;" +%typemap(out) void*, short*, int*, long*, long long *, char*, float*, double* "$result = $1;" +%typemap(out) const short, const int, const long, const long long, const char, const float, const double "$result = ($1_ltype) $1;" +%typemap(out) const void *, const short *, const int *, const long *, const long long *, const char *, const float *, const double * "$result = ($1_ltype) $1;" +%typemap(out) unsigned short, unsigned int, unsigned long, unsigned long long, unsigned char, signed char "$result = $1;" +%typemap(out) unsigned short *, unsigned int *, unsigned long *, unsigned long long *, unsigned char *, signed char * "$result = $1;" +%typemap(out) short &, int &, long &, long long &, char &, float &, double & "$result = $1;" +%typemap(out) unsigned short &, unsigned int &, unsigned long &, unsigned long long &, unsigned char &, signed char & "$result = $1;" +%typemap(out) const short &, const int &, const long &, const long long &, const char &, const float &, const double & "$result = $1;" +%typemap(out) const unsigned short &, const unsigned int &, const unsigned long &, const unsigned long long &, const unsigned char &, const signed char & "$result = $1;" +%typemap(out) short *&, int *&, long *&, long long *&, char *&, float *&, double *& "$result = $1;" +%typemap(out) const short *&, const int *&, const long *&, const long long *&, const char *&, const float *&, const double *& "$result = $1;" +%typemap(out) short [ANY], int [ANY], long [ANY], long long [ANY], char [ANY], float [ANY], double [ANY], unsigned char [ANY], signed char [ANY], unsigned int [ANY] "$result = $1;" +%typemap(out) short * [ANY], int * [ANY], long * [ANY], long long * [ANY], char * [ANY], float * [ANY], double * [ANY] "$result = $1;" +%typemap(out) short **, int **, long **, long long **, char **, float **, double ** "$result = $1;" %typemap(out) void "" %typemap(out, fragment="stdbool_inc") bool, bool *, const bool, const bool * "$result = ($1_ltype) $1;" %typemap(out, fragment="stdbool_inc") bool &, const bool & "$result = $1;" -%typemap(out) enum SWIGTYPE "$result = ($1_ltype) $1;" +%typemap(out) enum SWIGTYPE "$result = (int) $1;" +%typemap(out) enum SWIGTYPE &, enum SWIGTYPE * "$result = (int *) &$1;" %typemap(out) SWIGTYPE (CLASS::*) { *($&1_ltype) &$result = $1; } %typemap(out) SWIGTYPE *&, SWIGTYPE ** { - $result = &SWIG_temporary; + static SwigObj* _ptr = (SwigObj*) SWIG_create_object(SWIG_STR($1_basetype)); + $result = &_ptr; (*result)->obj = (void*) $1; } %typemap(out) SWIGTYPE { - $result = SWIG_temporary; + $result = (SwigObj*) SWIG_create_object(SWIG_STR($1_basetype)); $result->obj = (void*) &$1; } %typemap(out) SWIGTYPE *, SWIGTYPE & { - $result = SWIG_temporary; + $result = (SwigObj*) SWIG_create_object(SWIG_STR($1_basetype)); $result->obj = (void*) $1; } @@ -257,43 +336,81 @@ $result = (SwigObj**) 0; } +// typemaps for 'cppresult' +// this needs refactoring -- see 'couttype' typemaps + +%typemap(cppouttype) void, short, int, long, long long, char, float, double "$1_ltype" +%typemap(cppouttype) unsigned short, unsigned int, unsigned long, unsigned long long, unsigned char, signed char "$1_ltype" +%typemap(cppouttype) void *, short *, int *, long *, long long *, char *, float *, double*, unsigned char *, unsigned int *, unsigned long *, unsigned char *, signed char * "$1_ltype" +%typemap(cppouttype) const short, const int, const long, const long long, const char, const float, const double "$1_ltype" +%typemap(cppouttype) const void *, const short *, const int *, const long *, const long long *, const char *, const float *, const double * "$1_ltype" +%typemap(cppouttype) short &, int &, long &, long long &, char &, float &, double &, unsigned short &, unsigned int &, unsigned long &, unsigned long long &, unsigned char &, signed char & "$1_ltype" +%typemap(cppouttype) const short &, const int &, const long &, const long long &, const char &, const float &, const double & "$1_ltype" +%typemap(cppouttype) short *&, int *&, long *&, long long *&, char *&, float *&, double *& "$1_ltype" +%typemap(cppouttype) const short *&, const int *&, const long *&, const long long *&, const char *&, const float *&, const double *& "$1_ltype" +%typemap(cppouttype) short [ANY], int [ANY], long [ANY], long long [ANY], char [ANY], float [ANY], double [ANY], unsigned char [ANY], signed char [ANY], unsigned int [ANY] "$1_ltype" + +%typemap(cppouttype) const char* "const char *" +%typemap(cppouttype) const unsigned char* "const unsigned char *" +%typemap(cppouttype) const signed char* "const signed char *" +%typemap(cppouttype) short * [ANY], int * [ANY], long * [ANY], long long * [ANY], char * [ANY], float * [ANY], double * [ANY] "/*builtin * [ANY]*/ $1_ltype" + +%typemap(cppouttype) short **, int **, long **, long long **, char **, float **, double ** "$1_ltype" +%typemap(cppouttype, retobj="1") SWIGTYPE "$1_ltype *" +%typemap(cppouttype) SWIGTYPE * "$1_ltype" +%typemap(cppouttype) const SWIGTYPE * "const $1_ltype" +%typemap(cppouttype) SWIGTYPE & "$1_ltype" +%typemap(cppouttype) SWIGTYPE *& "$1_ltype" +%typemap(cppouttype) SWIGTYPE [ANY] "$1_ltype" +%typemap(cppouttype) SWIGTYPE * [ANY] "/*SWIGTYPE *[ANY] */ $1_ltype" +%typemap(cppouttype) SWIGTYPE ** "/*SWIGTYPE ** */ $1_basetype **" +%typemap(cppouttype, retobj="1") enum SWIGTYPE "int" +%typemap(cppouttype) enum SWIGTYPE * "int *" +%typemap(cppouttype) enum SWIGTYPE & "int *" +%typemap(cppouttype, fragment="fptr_decl") SWIGTYPE (CLASS::*) "$1_ltype" + +%typemap(cppouttype, fragment="stdbool_inc") bool, bool *, const bool, const bool * "$1_ltype" +%typemap(cppouttype, fragment="stdbool_inc") bool & "$1_basetype*" +%typemap(cppouttype, fragment="stdbool_inc") const bool & "$1_basetype const *" + +// templates typemaps - in progress... /* - * 2+ dim arrays - not supported yet -%typemap(out) SWIGTYPE * [ANY][ANY], SWIGTYPE *** { - if ($1) { - $result = (SwigObj***) malloc($1_dim0 * $1_dim1 * sizeof(SwigObj*)); - size_t i = 0, j = 0; - for ( ; i < $1_dim0; ++i) { - for ( ; j < $1_dim1; ++j) { - if ($1[i][j]) { - $result[i][j] = SWIG_create_object(SWIG_STR($1_ltype)); - $result[i][j]->obj = (void*) $1[i][j]; - } - else - $result[i][j] = (SwigObj*) 0; - } - } - } - else - $result = (SwigObj***) 0; -}*/ +%typemap(ctype) SWIGTYPE<T>, const SWIGTYPE<T> &, const SWIGTYPE<T> * "SwigObj *" +%typemap(in) SWIGTYPE<T>, const SWIGTYPE<T> &, const SWIGTYPE<T> * { $1 = ($1_ltype) $input; } +%typemap(out) SWIGTYPE<T>, const SWIGTYPE<T> &, const SWIGTYPE<T> * "$result = ($1_ltype) $1;" -#ifdef SWIG_C_EXCEPT +%typemap(cppouttype) SWIGTYPE<T>, const SWIGTYPE<T> &, const SWIGTYPE<T> * "$1_ltype" +*/ + +//%define size_t unsigned long %enddef + +%apply unsigned long { size_t }; +%apply const unsigned long & { const size_t & }; + +#ifdef SWIG_CPPMODE + + #ifdef SWIG_C_EXCEPT + %insert("runtime") %{ typedef struct { void *obj; const char **typenames; } SwigObj; %} + +%insert("proxy_header") %{ +typedef struct { + void *obj; + const char **typenames; +} SwigObj; +%} + %include "cexcept.swg" -#ifdef SWIG_CPPMODE + + #else + %insert("runtime") %{ -SwigObj *SWIG_temporary = (SwigObj *) malloc(sizeof(SwigObj)); -%} -#endif -#else -%insert("runtime") %{ typedef struct { void *obj; } SwigObj; @@ -301,28 +418,49 @@ #ifdef __cplusplus extern "C" { #endif - -SWIGEXPORTC int SWIG_exit(int code) { - exit(code); -} - +SWIGEXPORTC int SWIG_exit(int code) { exit(code); } #ifdef __cplusplus } #endif %} -#ifdef SWIG_CPPMODE -%insert("runtime") %{ -SwigObj *SWIG_temporary = (SwigObj *) malloc(sizeof(SwigObj)); -%} -#endif - %insert("proxy_header") %{ typedef struct { void *obj; - const char **typenames; } SwigObj; %} + + #endif + +%insert(runtime) %{ + SwigObj *SWIG_temporary = (SwigObj *) malloc(sizeof(SwigObj)); +%} +%insert("proxy_header") %{ +#include <stdarg.h> + +#define SWIG_MAKE_DELETE(Name,Obj) void Name(Obj *op1, ...) {\ + Obj *obj;\ + va_list vl;\ + va_start(vl, op1);\ + do {\ + obj = va_arg(vl, Obj *);\ + delete_##Obj(obj);\ + } while (obj);\ + va_end(vl);\ +} +%} + +#else + +%insert("runtime") %{ +#ifdef __cplusplus +extern "C" { #endif +SWIGEXPORTC int SWIG_exit(int code) { exit(code); } +#ifdef __cplusplus +} +#endif +%} +#endif Modified: branches/gsoc2008-maciekd/Lib/c/cexcept.swg =================================================================== --- branches/gsoc2008-maciekd/Lib/c/cexcept.swg 2009-04-13 21:23:07 UTC (rev 11188) +++ branches/gsoc2008-maciekd/Lib/c/cexcept.swg 2009-04-15 23:30:16 UTC (rev 11189) @@ -1,260 +1,265 @@ -/* ----------------------------------------------------------------------------- - * clabels.swg - * - * Exception handling code and typemaps for C module. - * ----------------------------------------------------------------------------- */ - -%typemap(throws) BASIC_INT_TYPES { - char error_msg[256]; - sprintf(error_msg, "C++ $1_type exception thrown, value: %d", $1); - SWIG_CThrowException(0, error_msg); -} - -%apply BASIC_INT_TYPES { int, long, short, unsigned int, unsigned long, unsigned short, int &, long &, short &, unsigned int &, unsigned long &, unsigned short & }; - -%typemap(throws) char *, const char * { - SWIG_CThrowException(0, $1); -} - -// this should match only SwigObj objects -%typemap(throws) SWIGTYPE { - SwigObj *c_ex; - c_ex = SWIG_create_object(SWIG_STR($1_basetype)); - c_ex->obj = (void*) &$1; - SWIG_CThrowException(c_ex, "C++ $1_type exception thrown"); -} - -%typemap(throws) SWIGTYPE * { - SwigObj *c_ex; - c_ex = SWIG_create_object(SWIG_STR($1_basetype)); - c_ex->obj = (void*) $1; - SWIG_CThrowException(c_ex, "C++ $1_type exception thrown"); -} - -%insert("runtime") %{ -#define SWIG_MAX_RT_STACK 256 -#define SWIG_REGISTRY_INIT 256 - -SWIGINTERN SwigObj **SWIG_registry_base = 0; -SWIGINTERN SwigObj **SWIG_registry = 0; -SWIGINTERN int SWIG_registry_size = SWIG_REGISTRY_INIT; - -SWIGINTERN SwigObj *SWIG_create_object(const char *classname); -SWIGINTERN void SWIG_destroy_object(SwigObj *object); - -SWIGEXPORTC struct SWIG_exc_struct { - int code; - char *msg; - SwigObj *klass; - int handled; -} SWIG_exc = { 0, 0, 0, 0 }; - -SWIGEXPORTC jmp_buf SWIG_rt_env; -SWIGEXPORTC int SWIG_rt_init = 0; -SWIGINTERN jmp_buf SWIG_cpp_back_env; -SWIGINTERN jmp_buf *SWIG_rt_stack_base = 0; -SWIGINTERN jmp_buf *SWIG_rt_stack_ptr = 0; - -SWIGINTERN void SWIG_rt_stack_push() { - // TODO: check for stack overflow - memcpy(SWIG_rt_stack_ptr, SWIG_rt_env, sizeof(SWIG_rt_env)); - SWIG_rt_stack_ptr++; -} - -SWIGINTERN void SWIG_rt_stack_pop() { - if (SWIG_rt_stack_ptr == SWIG_rt_stack_base) - return; - SWIG_rt_stack_ptr--; - memcpy(SWIG_rt_env, SWIG_rt_stack_ptr, sizeof(SWIG_rt_env)); -} - -SWIGINTERN void SWIG_add_registry_entry(SwigObj *entry) { - if (SWIG_registry_base == 0) { - SWIG_registry_base = SWIG_registry = (SwigObj **) malloc(SWIG_registry_size * sizeof(SwigObj *)); - memset(SWIG_registry_base, 0, SWIG_registry_size * sizeof(SwigObj *)); - } - *SWIG_registry = entry; - SWIG_registry++; - if ((SWIG_registry - SWIG_registry_base) == SWIG_registry_size) { - SWIG_registry = SWIG_registry_base; - SWIG_registry_size += SWIG_REGISTRY_INIT; - int new_size = SWIG_registry_size * sizeof(SwigObj *); - SWIG_registry_base = (SwigObj **) malloc(new_size); - memset(SWIG_registry_base, 0, new_size); - memcpy(SWIG_registry_base, SWIG_registry, (SWIG_registry_size - SWIG_REGISTRY_INIT) * sizeof(SwigObj *)); - free(SWIG_registry); - SWIG_registry = SWIG_registry_base + (SWIG_registry_size - SWIG_REGISTRY_INIT); - } -} - -SWIGINTERN void SWIG_remove_registry_entry(SwigObj *entry) { - int i; - for (i = 0; i < SWIG_registry_size; ++i) { - if (*(SWIG_registry_base + i) == entry) { - *(SWIG_registry_base + i) = 0; - break; - } - } -} - -SWIGINTERN void SWIG_cleanup() { - if (SWIG_rt_stack_base) - free(SWIG_rt_stack_base); - if (SWIG_exc.msg) - free(SWIG_exc.msg); - if (SWIG_exc.klass) { - if (SWIG_exc.klass->typenames) - free(SWIG_exc.klass->typenames); - free(SWIG_exc.klass); - } - int i; - if (SWIG_registry_base) { - for (i = 0; i < SWIG_registry_size; ++i) { - if (*(SWIG_registry_base + i)) { - SWIG_destroy_object(*(SWIG_registry_base + i)); - *(SWIG_registry_base + i) = 0; - } - } - } - free(SWIG_registry_base); - SWIG_registry_base = 0; -} - -#ifdef __cplusplus -extern "C" { -#endif - -SWIGEXPORTC void SWIG_rt_try() { - SWIG_rt_stack_push(); -} - -SWIGEXPORTC int SWIG_rt_catch(const char *type) { - int result = 0; - if (!type || (strcmp("SWIG_AnyException", type) == 0)) { - result = 1; - } - else if (SWIG_exc.klass) { - int i = 0; - while (SWIG_exc.klass->typenames[i]) { - if (strcmp(SWIG_exc.klass->typenames[i++], type) == 0) { - result = 1; - break; - } - } - } - if (result) { - SWIG_rt_stack_pop(); - SWIG_exc.handled = 1; - } - return result; -} - -SWIGEXPORTC void SWIG_rt_throw(SwigObj *klass, const char *msg) { - if (SWIG_exc.msg) { - free(SWIG_exc.msg); - SWIG_exc.msg = (char *) 0; - } - if (msg) { - SWIG_exc.msg = (char *) malloc(strlen(msg) + 1); - strcpy(SWIG_exc.msg, msg); - } - SWIG_exc.klass = klass; - SWIG_exc.handled = 0; - longjmp(SWIG_rt_env, 1); -} - -SWIGEXPORTC void SWIG_rt_unhandled() { - if (SWIG_exc.msg) { - free(SWIG_exc.msg); - SWIG_exc.msg = 0; - } - SWIG_rt_stack_pop(); - longjmp(SWIG_rt_env, SWIG_exc.code); -} - -SWIGEXPORTC void SWIG_rt_endtry() { - if (SWIG_exc.handled) { - if (setjmp(SWIG_rt_env) == 0) { - SWIG_rt_stack_push(); - longjmp(SWIG_cpp_back_env, 1); - } - } - else { - SWIG_rt_stack_pop(); // pop the SWIG_try context - } -} - -SWIGEXPORTC int SWIG_exit(int code) { - SWIG_cleanup(); - exit(code); -} - -#ifdef __cplusplus -} -#endif - -SWIGINTERN void SWIG_terminate() { - fprintf(stderr, "Unhandled exception: %s\n%s\nExitting...\n", - SWIG_exc.klass->typenames[0], - SWIG_exc.msg ? SWIG_exc.msg : ""); - SWIG_exit(SWIG_exc.code); -} - -SWIGINTERN void SWIG_runtime_init() { - int i, code; - if (!SWIG_rt_init) { - SWIG_rt_init = 1; - SWIG_rt_stack_base = SWIG_rt_stack_ptr = (jmp_buf *) malloc(sizeof(jmp_buf) * SWIG_MAX_RT_STACK); - if (SWIG_exc.code = setjmp(SWIG_rt_env)) { - // deallocate C++ exception - if (setjmp(SWIG_rt_env) == 0) { - SWIG_rt_stack_push(); - SWIG_exc.handled = 1; - longjmp(SWIG_cpp_back_env, 1); - } - SWIG_terminate(); - } - } -} - -#define SWIG_CThrowException(klass, msg) \ - if (setjmp(SWIG_cpp_back_env) == 0) \ - SWIG_rt_throw((SwigObj *) klass, msg); -%} - -%insert("proxy_header") %{ -// special value indicating any type of exception like 'catch(...)' -#define SWIG_AnyException "SWIG_AnyException" - -#include <setjmp.h> - -SWIGIMPORT jmp_buf SWIG_rt_env; - -typedef struct { - void *obj; - const char **typenames; -} SwigObj; - -SWIGIMPORT struct SWIG_exc_struct { - int code; - char *msg; - SwigObj *klass; -} SWIG_exc; - -SWIGIMPORT void SWIG_rt_try(); -SWIGIMPORT int SWIG_rt_catch(const char *type); -SWIGIMPORT void SWIG_rt_throw(SwigObj *klass, const char * msg); -SWIGIMPORT int SWIG_rt_unhandled(); -SWIGIMPORT void SWIG_rt_endtry(); -SWIGIMPORT int SWIG_exit(int code); - -#define SWIG_try \ - SWIG_rt_try(); \ - if ((SWIG_exc.code = setjmp(SWIG_rt_env)) == 0) -#define SWIG_catch(type) else if (SWIG_rt_catch(#type)) -#define SWIG_throw(klass) SWIG_rt_throw((SwigObj *) klass, 0); -#define SWIG_throw_msg(klass, msg) SWIG_rt_throw((SwigObj *) klass, msg); -#define SWIG_endtry else SWIG_rt_unhandled(); SWIG_rt_endtry(); - -%} - +/* ----------------------------------------------------------------------------- + * clabels.swg + * + * Exception handling code and typemaps for C module. + * ----------------------------------------------------------------------------- */ + +%typemap(throws) BASIC_INT_TYPES { + char error_msg[256]; + sprintf(error_msg, "C++ $1_type exception thrown, value: %d", $1); + SWIG_CThrowException(0, error_msg); +} + +%apply BASIC_INT_TYPES { int, long, short, unsigned int, unsigned long, unsigned short, int &, long &, short &, unsigned int &, unsigned long &, unsigned short & }; + +%typemap(throws) char *, const char * { + SWIG_CThrowException(0, $1); +} + +// this should match only SwigObj objects +%typemap(throws) SWIGTYPE { + SwigObj *c_ex; + c_ex = SWIG_create_object(SWIG_STR($1_basetype)); + c_ex->obj = (void*) &$1; + SWIG_CThrowException(c_ex, "C++ $1_type exception thrown"); +} + +%typemap(throws) SWIGTYPE * { + SwigObj *c_ex; + c_ex = SWIG_create_object(SWIG_STR($1_basetype)); + c_ex->obj = (void*) $1; + SWIG_CThrowException(c_ex, "C++ $1_type exception thrown"); +} + +%insert("runtime") %{ +#define SWIG_MAX_RT_STACK 256 +#define SWIG_REGISTRY_INIT 256 + +SWIGINTERN SwigObj **SWIG_registry_base = 0; +SWIGINTERN SwigObj **SWIG_registry = 0; +SWIGINTERN int SWIG_registry_size = SWIG_REGISTRY_INIT; + +SWIGINTERN SwigObj *SWIG_create_object(const char *classname); +SWIGINTERN void SWIG_destroy_object(SwigObj *object); +SWIGINTERN void SWIG_free_SwigObj(SwigObj *object); + +SWIGEXPORTC struct SWIG_exc_struct { + int code; + char *msg; + SwigObj *klass; + int handled; +} SWIG_exc = { 0, 0, 0, 0 }; + +SWIGEXPORTC jmp_buf SWIG_rt_env; +SWIGEXPORTC int SWIG_rt_init = 0; +SWIGINTERN jmp_buf SWIG_cpp_back_env; +SWIGINTERN jmp_buf *SWIG_rt_stack_base = 0; +SWIGINTERN jmp_buf *SWIG_rt_stack_ptr = 0; + +SWIGINTERN void SWIG_rt_stack_push() { + // TODO: check for stack overflow + memcpy(SWIG_rt_stack_ptr, SWIG_rt_env, sizeof(SWIG_rt_env)); + SWIG_rt_stack_ptr++; +} + +SWIGINTERN void SWIG_rt_stack_pop() { + if (SWIG_rt_stack_ptr == SWIG_rt_stack_base) + return; + SWIG_rt_stack_ptr--; + memcpy(SWIG_rt_env, SWIG_rt_stack_ptr, sizeof(SWIG_rt_env)); +} + +SWIGINTERN void SWIG_add_registry_entry(SwigObj *entry) { + if (SWIG_registry_base == 0) { + SWIG_registry_base = SWIG_registry = (SwigObj **) malloc(SWIG_registry_size * sizeof(SwigObj *)); + memset(SWIG_registry_base, 0, SWIG_registry_size * sizeof(SwigObj *)); + } + *SWIG_registry = entry; + SWIG_registry++; + if ((SWIG_registry - SWIG_registry_base) == SWIG_registry_size) { + SWIG_registry = SWIG_registry_base; + SWIG_registry_size += SWIG_REGISTRY_INIT; + int new_size = SWIG_registry_size * sizeof(SwigObj *); + SWIG_registry_base = (SwigObj **) malloc(new_size); + memset(SWIG_registry_base, 0, new_size); + memcpy(SWIG_registry_base, SWIG_registry, (SWIG_registry_size - SWIG_REGISTRY_INIT) * sizeof(SwigObj *)); + free(SWIG_registry); + SWIG_registry = SWIG_registry_base + (SWIG_registry_size - SWIG_REGISTRY_INIT); + } +} + +SWIGINTERN void SWIG_remove_registry_entry(SwigObj *entry) { + int i; + for (i = 0; i < SWIG_registry_size; ++i) { + if (*(SWIG_registry_base + i) == entry) { + *(SWIG_registry_base + i) = 0; + break; + } + } +} + +SWIGINTERN void SWIG_free_SwigObj(SwigObj *object) { + if (object) { + if (object->typenames) + free(object->typenames); + free(object); + object = (SwigObj *) 0; + } +} + +SWIGINTERN void SWIG_cleanup() { + if (SWIG_rt_stack_base) + free(SWIG_rt_stack_base); + if (SWIG_exc.msg) + free(SWIG_exc.msg); + if (SWIG_exc.klass) { + if (SWIG_exc.klass->typenames) + free(SWIG_exc.klass->typenames); + free(SWIG_exc.klass); + } + int i; + if (SWIG_registry_base) { + for (i = 0; i < SWIG_registry_size; ++i) { + if (*(SWIG_registry_base + i)) { + SWIG_free_SwigObj(*(SWIG_registry_base + i)); + *(SWIG_registry_base + i) = 0; + } + } + } + free(SWIG_registry_base); + SWIG_registry_base = 0; +} + +#ifdef __cplusplus +extern "C" { +#endif + +SWIGEXPORTC void SWIG_rt_try() { + SWIG_rt_stack_push(); +} + +SWIGEXPORTC int SWIG_rt_catch(const char *type) { + int result = 0; + if (!type || (strcmp("SWIG_AnyException", type) == 0)) { + result = 1; + } + else if (SWIG_exc.klass) { + int i = 0; + while (SWIG_exc.klass->typenames[i]) { + if (strcmp(SWIG_exc.klass->typenames[i++], type) == 0) { + result = 1; + break; + } + } + } + if (result) { + SWIG_rt_stack_pop(); + SWIG_exc.handled = 1; + } + return result; +} + +SWIGEXPORTC void SWIG_rt_throw(SwigObj *klass, const char *msg) { + if (SWIG_exc.msg) { + free(SWIG_exc.msg); + SWIG_exc.msg = (char *) 0; + } + if (msg) { + SWIG_exc.msg = (char *) malloc(strlen(msg) + 1); + strcpy(SWIG_exc.msg, msg); + } + SWIG_exc.klass = klass; + SWIG_exc.handled = 0; + longjmp(SWIG_rt_env, 1); +} + +SWIGEXPORTC void SWIG_rt_unhandled() { + if (SWIG_exc.msg) { + free(SWIG_exc.msg); + SWIG_exc.msg = 0; + } + SWIG_rt_stack_pop(); + longjmp(SWIG_rt_env, SWIG_exc.code); +} + +SWIGEXPORTC void SWIG_rt_endtry() { + if (SWIG_exc.handled) { + if (setjmp(SWIG_rt_env) == 0) { + SWIG_rt_stack_push(); + longjmp(SWIG_cpp_back_env, 1); + } + } + else { + SWIG_rt_stack_pop(); // pop the SWIG_try context + } +} + +SWIGEXPORTC int SWIG_exit(int code) { + SWIG_cleanup(); + exit(code); +} + +#ifdef __cplusplus +} +#endif + +SWIGINTERN void SWIG_terminate() { + fprintf(stderr, "Unhandled exception: %s\n%s\nExitting...\n", + SWIG_exc.klass->typenames[0], + SWIG_exc.msg ? SWIG_exc.msg : ""); + SWIG_exit(SWIG_exc.code); +} + +SWIGINTERN void SWIG_runtime_init() { + int i, code; + if (!SWIG_rt_init) { + SWIG_rt_init = 1; + SWIG_rt_stack_base = SWIG_rt_stack_ptr = (jmp_buf *) malloc(sizeof(jmp_buf) * SWIG_MAX_RT_STACK); + if (SWIG_exc.code = setjmp(SWIG_rt_env)) { + // deallocate C++ exception + if (setjmp(SWIG_rt_env) == 0) { + SWIG_rt_stack_push(); + SWIG_exc.handled = 1; + longjmp(SWIG_cpp_back_env, 1); + } + SWIG_terminate(); + } + } +} + +#define SWIG_CThrowException(klass, msg) \ + if (setjmp(SWIG_cpp_back_env) == 0) \ + SWIG_rt_throw((SwigObj *) klass, msg); +%} + +%insert("proxy_header") %{ +// special value indicating any type of exception like 'catch(...)' +#define SWIG_AnyException "SWIG_AnyException" + +#include <setjmp.h> + +SWIGIMPORT jmp_buf SWIG_rt_env; + +SWIGIMPORT struct SWIG_exc_struct { + int code; + char *msg; + SwigObj *klass; +} SWIG_exc; + +SWIGIMPORT void SWIG_rt_try(); +SWIGIMPORT int SWIG_rt_catch(const char *type); +SWIGIMPORT void SWIG_rt_throw(SwigObj *klass, const char * msg); +SWIGIMPORT int SWIG_rt_unhandled(); +SWIGIMPORT void SWIG_rt_endtry(); +SWIGIMPORT int SWIG_exit(int code); + +#define SWIG_try \ + SWIG_rt_try(); \ + if ((SWIG_exc.code = setjmp(SWIG_rt_env)) == 0) +#define SWIG_catch(type) else if (SWIG_rt_catch(#type)) +#define SWIG_throw(klass) SWIG_rt_throw((SwigObj *) klass, 0); +#define SWIG_throw_msg(klass, msg) SWIG_rt_throw((SwigObj *) klass, msg); +#define SWIG_endtry else SWIG_rt_unhandled(); SWIG_rt_endtry(); + +%} + Modified: branches/gsoc2008-maciekd/Lib/c/cproxy.swg =================================================================== --- branches/gsoc2008-maciekd/Lib/c/cproxy.swg 2009-04-13 21:23:07 UTC (rev 11188) +++ branches/gsoc2008-maciekd/Lib/c/cproxy.swg 2009-04-15 23:30:16 UTC (rev 11189) @@ -17,3 +17,4 @@ # endif #endif +#include <stdio.h> \ No newline at end of file Added: branches/gsoc2008-maciekd/Lib/c/std_common.i =================================================================== --- branches/gsoc2008-maciekd/Lib/c/std_common.i (rev 0) +++ branches/gsoc2008-maciekd/Lib/c/std_common.i 2009-04-15 23:30:16 UTC (rev 11189) @@ -0,0 +1,4 @@ +%include <std_except.i> + +%apply size_t { std::size_t }; +%apply const size_t& { const std::size_t & }; Added: branches/gsoc2008-maciekd/Lib/c/std_except.i =================================================================== --- branches/gsoc2008-maciekd/Lib/c/std_except.i (rev 0) +++ branches/gsoc2008-maciekd/Lib/c/std_except.i 2009-04-15 23:30:16 UTC (rev 11189) @@ -0,0 +1,34 @@ +/* ----------------------------------------------------------------------------- + * See the LICENSE file for information on copyright, usage and redistribution + * of SWIG, and the README file for authors - http://www.swig.org/release.html. + * + * std_except.i + * + * Typemaps used by the STL wrappers that throw exceptions. + * These typemaps are used when methods are declared with an STL exception specification, such as + * size_t at() const throw (std::out_of_range); + * ----------------------------------------------------------------------------- */ + +%{ +#include <stdexcept> +%} + +namespace std +{ + %ignore exception; + struct exception {}; +} + +/* +%typemap(throws) std::bad_exception "SWIG_JavaThrowException(jenv, SWIG_JavaRuntimeException, $1.what());\n return $null;" +%typemap(throws) std::domain_error "SWIG_JavaThrowException(jenv, SWIG_JavaRuntimeException, $1.what());\n return $null;" +%typemap(throws) std::exception "SWIG_JavaThrowException(jenv, SWIG_JavaRuntimeException, $1.what());\n return $null;" +%typemap(throws) std::invalid_argument "SWIG_JavaThrowException(jenv, SWIG_JavaIllegalArgumentException, $1.what());\n return $null;" +%typemap(throws) std::length_error "SWIG_JavaThrowException(jenv, SWIG_JavaIndexOutOfBoundsException, $1.what());\n return $null;" +%typemap(throws) std::logic_error "SWIG_JavaThrowException(jenv, SWIG_JavaRuntimeException, $1.what());\n return $null;" +%typemap(throws) std::out_of_range "SWIG_JavaThrowException(jenv, SWIG_JavaIndexOutOfBoundsException, $1.what());\n return $null;" +%typemap(throws) std::overflow_error "SWIG_JavaThrowException(jenv, SWIG_JavaArithmeticException, $1.what());\n return $null;" +%typemap(throws) std::range_error "SWIG_JavaThro... [truncated message content] |
From: <wsf...@us...> - 2010-03-06 13:26:19
|
Revision: 11918 http://swig.svn.sourceforge.net/swig/?rev=11918&view=rev Author: wsfulton Date: 2010-03-06 13:26:09 +0000 (Sat, 06 Mar 2010) Log Message: ----------- merge revisions 11872:11876 from trunk to gsoc2008-maciekd branch - license changes Modified Paths: -------------- branches/gsoc2008-maciekd/ANNOUNCE branches/gsoc2008-maciekd/Doc/Manual/Sections.html branches/gsoc2008-maciekd/Examples/guile/check.list branches/gsoc2008-maciekd/Examples/lua/lua.c branches/gsoc2008-maciekd/Examples/test-suite/li_std_queue.i branches/gsoc2008-maciekd/Examples/test-suite/li_std_set.i branches/gsoc2008-maciekd/Examples/test-suite/li_std_stack.i branches/gsoc2008-maciekd/Examples/test-suite/ruby/ruby_li_std_speed_runme.rb branches/gsoc2008-maciekd/Examples/test-suite/ruby_li_std_speed.i branches/gsoc2008-maciekd/Lib/allegrocl/allegrocl.swg branches/gsoc2008-maciekd/Lib/allegrocl/longlongs.i branches/gsoc2008-maciekd/Lib/allegrocl/std_list.i branches/gsoc2008-maciekd/Lib/allegrocl/std_string.i branches/gsoc2008-maciekd/Lib/attribute.i branches/gsoc2008-maciekd/Lib/carrays.i branches/gsoc2008-maciekd/Lib/cdata.i branches/gsoc2008-maciekd/Lib/chicken/chicken.swg branches/gsoc2008-maciekd/Lib/chicken/chickenrun.swg branches/gsoc2008-maciekd/Lib/chicken/multi-generic.scm branches/gsoc2008-maciekd/Lib/chicken/std_string.i branches/gsoc2008-maciekd/Lib/chicken/typemaps.i branches/gsoc2008-maciekd/Lib/clisp/clisp.swg branches/gsoc2008-maciekd/Lib/cmalloc.i branches/gsoc2008-maciekd/Lib/constraints.i branches/gsoc2008-maciekd/Lib/cpointer.i branches/gsoc2008-maciekd/Lib/csharp/arrays_csharp.i branches/gsoc2008-maciekd/Lib/csharp/csharp.swg branches/gsoc2008-maciekd/Lib/csharp/csharphead.swg branches/gsoc2008-maciekd/Lib/csharp/director.swg branches/gsoc2008-maciekd/Lib/csharp/enums.swg branches/gsoc2008-maciekd/Lib/csharp/enumsimple.swg branches/gsoc2008-maciekd/Lib/csharp/enumtypesafe.swg branches/gsoc2008-maciekd/Lib/csharp/std_except.i branches/gsoc2008-maciekd/Lib/csharp/std_map.i branches/gsoc2008-maciekd/Lib/csharp/std_pair.i branches/gsoc2008-maciekd/Lib/csharp/std_string.i branches/gsoc2008-maciekd/Lib/csharp/std_vector.i branches/gsoc2008-maciekd/Lib/csharp/std_wstring.i branches/gsoc2008-maciekd/Lib/csharp/stl.i branches/gsoc2008-maciekd/Lib/csharp/typemaps.i branches/gsoc2008-maciekd/Lib/csharp/wchar.i branches/gsoc2008-maciekd/Lib/cstring.i branches/gsoc2008-maciekd/Lib/cwstring.i branches/gsoc2008-maciekd/Lib/exception.i branches/gsoc2008-maciekd/Lib/gcj/cni.swg branches/gsoc2008-maciekd/Lib/guile/common.scm branches/gsoc2008-maciekd/Lib/guile/cplusplus.i branches/gsoc2008-maciekd/Lib/guile/guile.i branches/gsoc2008-maciekd/Lib/guile/guile_gh.swg branches/gsoc2008-maciekd/Lib/guile/guile_gh_run.swg branches/gsoc2008-maciekd/Lib/guile/guile_scm.swg branches/gsoc2008-maciekd/Lib/guile/guile_scm_run.swg branches/gsoc2008-maciekd/Lib/guile/guilemain.i branches/gsoc2008-maciekd/Lib/guile/interpreter.i branches/gsoc2008-maciekd/Lib/guile/list-vector.i branches/gsoc2008-maciekd/Lib/guile/pointer-in-out.i branches/gsoc2008-maciekd/Lib/guile/ports.i branches/gsoc2008-maciekd/Lib/guile/std_common.i branches/gsoc2008-maciekd/Lib/guile/std_map.i branches/gsoc2008-maciekd/Lib/guile/std_pair.i branches/gsoc2008-maciekd/Lib/guile/std_string.i branches/gsoc2008-maciekd/Lib/guile/std_vector.i branches/gsoc2008-maciekd/Lib/guile/stl.i branches/gsoc2008-maciekd/Lib/guile/typemaps.i branches/gsoc2008-maciekd/Lib/inttypes.i branches/gsoc2008-maciekd/Lib/java/arrays_java.i branches/gsoc2008-maciekd/Lib/java/director.swg branches/gsoc2008-maciekd/Lib/java/enums.swg branches/gsoc2008-maciekd/Lib/java/enumsimple.swg branches/gsoc2008-maciekd/Lib/java/enumtypesafe.swg branches/gsoc2008-maciekd/Lib/java/enumtypeunsafe.swg branches/gsoc2008-maciekd/Lib/java/java.swg branches/gsoc2008-maciekd/Lib/java/javahead.swg branches/gsoc2008-maciekd/Lib/java/std_except.i branches/gsoc2008-maciekd/Lib/java/std_map.i branches/gsoc2008-maciekd/Lib/java/std_pair.i branches/gsoc2008-maciekd/Lib/java/std_string.i branches/gsoc2008-maciekd/Lib/java/std_vector.i branches/gsoc2008-maciekd/Lib/java/std_wstring.i branches/gsoc2008-maciekd/Lib/java/stl.i branches/gsoc2008-maciekd/Lib/java/typemaps.i branches/gsoc2008-maciekd/Lib/java/various.i branches/gsoc2008-maciekd/Lib/lua/_std_common.i branches/gsoc2008-maciekd/Lib/lua/lua.swg branches/gsoc2008-maciekd/Lib/lua/lua_fnptr.i branches/gsoc2008-maciekd/Lib/lua/luarun.swg branches/gsoc2008-maciekd/Lib/lua/luaruntime.swg branches/gsoc2008-maciekd/Lib/lua/luatypemaps.swg branches/gsoc2008-maciekd/Lib/lua/std_except.i branches/gsoc2008-maciekd/Lib/lua/std_map.i branches/gsoc2008-maciekd/Lib/lua/std_pair.i branches/gsoc2008-maciekd/Lib/lua/std_string.i branches/gsoc2008-maciekd/Lib/lua/std_vector.i branches/gsoc2008-maciekd/Lib/lua/stl.i branches/gsoc2008-maciekd/Lib/lua/typemaps.i branches/gsoc2008-maciekd/Lib/lua/wchar.i branches/gsoc2008-maciekd/Lib/math.i branches/gsoc2008-maciekd/Lib/modula3/modula3.swg branches/gsoc2008-maciekd/Lib/modula3/modula3head.swg branches/gsoc2008-maciekd/Lib/modula3/typemaps.i branches/gsoc2008-maciekd/Lib/mzscheme/mzrun.swg branches/gsoc2008-maciekd/Lib/mzscheme/mzscheme.swg branches/gsoc2008-maciekd/Lib/mzscheme/std_common.i branches/gsoc2008-maciekd/Lib/mzscheme/std_map.i branches/gsoc2008-maciekd/Lib/mzscheme/std_pair.i branches/gsoc2008-maciekd/Lib/mzscheme/std_string.i branches/gsoc2008-maciekd/Lib/mzscheme/std_vector.i branches/gsoc2008-maciekd/Lib/mzscheme/stl.i branches/gsoc2008-maciekd/Lib/mzscheme/typemaps.i branches/gsoc2008-maciekd/Lib/ocaml/cstring.i branches/gsoc2008-maciekd/Lib/ocaml/director.swg branches/gsoc2008-maciekd/Lib/ocaml/ocaml.i branches/gsoc2008-maciekd/Lib/ocaml/ocamldec.swg branches/gsoc2008-maciekd/Lib/ocaml/std_common.i branches/gsoc2008-maciekd/Lib/ocaml/std_deque.i branches/gsoc2008-maciekd/Lib/ocaml/std_list.i branches/gsoc2008-maciekd/Lib/ocaml/std_map.i branches/gsoc2008-maciekd/Lib/ocaml/std_pair.i branches/gsoc2008-maciekd/Lib/ocaml/std_string.i branches/gsoc2008-maciekd/Lib/ocaml/std_vector.i branches/gsoc2008-maciekd/Lib/ocaml/stl.i branches/gsoc2008-maciekd/Lib/ocaml/typecheck.i branches/gsoc2008-maciekd/Lib/ocaml/typemaps.i branches/gsoc2008-maciekd/Lib/octave/octcontainer.swg branches/gsoc2008-maciekd/Lib/octave/octiterators.swg branches/gsoc2008-maciekd/Lib/perl5/perlmain.i branches/gsoc2008-maciekd/Lib/perl5/reference.i branches/gsoc2008-maciekd/Lib/perl5/std_common.i branches/gsoc2008-maciekd/Lib/perl5/std_list.i branches/gsoc2008-maciekd/Lib/perl5/std_map.i branches/gsoc2008-maciekd/Lib/perl5/std_pair.i branches/gsoc2008-maciekd/Lib/perl5/std_vector.i branches/gsoc2008-maciekd/Lib/perl5/stl.i branches/gsoc2008-maciekd/Lib/perl5/typemaps.i branches/gsoc2008-maciekd/Lib/php/const.i branches/gsoc2008-maciekd/Lib/php/globalvar.i branches/gsoc2008-maciekd/Lib/php/php.swg branches/gsoc2008-maciekd/Lib/php/phpkw.swg branches/gsoc2008-maciekd/Lib/php/phprun.swg branches/gsoc2008-maciekd/Lib/php/std_common.i branches/gsoc2008-maciekd/Lib/php/std_map.i branches/gsoc2008-maciekd/Lib/php/std_pair.i branches/gsoc2008-maciekd/Lib/php/std_string.i branches/gsoc2008-maciekd/Lib/php/std_vector.i branches/gsoc2008-maciekd/Lib/php/stl.i branches/gsoc2008-maciekd/Lib/php/typemaps.i branches/gsoc2008-maciekd/Lib/pike/pike.swg branches/gsoc2008-maciekd/Lib/pike/pikerun.swg branches/gsoc2008-maciekd/Lib/pike/std_string.i branches/gsoc2008-maciekd/Lib/pointer.i branches/gsoc2008-maciekd/Lib/python/ccomplex.i branches/gsoc2008-maciekd/Lib/python/director.swg branches/gsoc2008-maciekd/Lib/python/embed15.i branches/gsoc2008-maciekd/Lib/python/file.i branches/gsoc2008-maciekd/Lib/python/pycontainer.swg branches/gsoc2008-maciekd/Lib/python/pyiterators.swg branches/gsoc2008-maciekd/Lib/python/pyrun.swg branches/gsoc2008-maciekd/Lib/python/typemaps.i branches/gsoc2008-maciekd/Lib/ruby/director.swg branches/gsoc2008-maciekd/Lib/ruby/rubyautodoc.swg branches/gsoc2008-maciekd/Lib/ruby/rubycontainer.swg branches/gsoc2008-maciekd/Lib/ruby/rubycontainer_extended.swg branches/gsoc2008-maciekd/Lib/ruby/rubyiterators.swg branches/gsoc2008-maciekd/Lib/ruby/rubyprimtypes.swg branches/gsoc2008-maciekd/Lib/ruby/rubyrun.swg branches/gsoc2008-maciekd/Lib/ruby/rubystdautodoc.swg branches/gsoc2008-maciekd/Lib/ruby/rubytracking.swg branches/gsoc2008-maciekd/Lib/ruby/rubywstrings.swg branches/gsoc2008-maciekd/Lib/ruby/stl.i branches/gsoc2008-maciekd/Lib/ruby/typemaps.i branches/gsoc2008-maciekd/Lib/std/_std_deque.i branches/gsoc2008-maciekd/Lib/std_except.i branches/gsoc2008-maciekd/Lib/stdint.i branches/gsoc2008-maciekd/Lib/stl.i branches/gsoc2008-maciekd/Lib/swigarch.i branches/gsoc2008-maciekd/Lib/swigrun.i branches/gsoc2008-maciekd/Lib/tcl/mactkinit.c branches/gsoc2008-maciekd/Lib/tcl/std_common.i branches/gsoc2008-maciekd/Lib/tcl/std_pair.i branches/gsoc2008-maciekd/Lib/tcl/std_vector.i branches/gsoc2008-maciekd/Lib/tcl/stl.i branches/gsoc2008-maciekd/Lib/tcl/tcl8.swg branches/gsoc2008-maciekd/Lib/tcl/tclinterp.i branches/gsoc2008-maciekd/Lib/tcl/tclopers.swg branches/gsoc2008-maciekd/Lib/tcl/tclresult.i branches/gsoc2008-maciekd/Lib/tcl/tclrun.swg branches/gsoc2008-maciekd/Lib/tcl/tclsh.i branches/gsoc2008-maciekd/Lib/tcl/tclwstrings.swg branches/gsoc2008-maciekd/Lib/tcl/typemaps.i branches/gsoc2008-maciekd/Lib/tcl/wish.i branches/gsoc2008-maciekd/Lib/typemaps/attribute.swg branches/gsoc2008-maciekd/Lib/typemaps/carrays.swg branches/gsoc2008-maciekd/Lib/typemaps/cdata.swg branches/gsoc2008-maciekd/Lib/typemaps/cmalloc.swg branches/gsoc2008-maciekd/Lib/typemaps/cpointer.swg branches/gsoc2008-maciekd/Lib/typemaps/cstrings.swg branches/gsoc2008-maciekd/Lib/typemaps/exception.swg branches/gsoc2008-maciekd/Lib/typemaps/ptrtypes.swg branches/gsoc2008-maciekd/Lib/typemaps/swigtypemaps.swg branches/gsoc2008-maciekd/Lib/typemaps/typemaps.swg branches/gsoc2008-maciekd/Lib/uffi/uffi.swg branches/gsoc2008-maciekd/Lib/wchar.i branches/gsoc2008-maciekd/Lib/windows.i branches/gsoc2008-maciekd/Makefile.in branches/gsoc2008-maciekd/README branches/gsoc2008-maciekd/Source/CParse/cparse.h branches/gsoc2008-maciekd/Source/CParse/cscanner.c branches/gsoc2008-maciekd/Source/CParse/parser.y branches/gsoc2008-maciekd/Source/CParse/templ.c branches/gsoc2008-maciekd/Source/CParse/util.c branches/gsoc2008-maciekd/Source/DOH/base.c branches/gsoc2008-maciekd/Source/DOH/doh.h branches/gsoc2008-maciekd/Source/DOH/dohint.h branches/gsoc2008-maciekd/Source/DOH/file.c branches/gsoc2008-maciekd/Source/DOH/fio.c branches/gsoc2008-maciekd/Source/DOH/hash.c branches/gsoc2008-maciekd/Source/DOH/list.c branches/gsoc2008-maciekd/Source/DOH/memory.c branches/gsoc2008-maciekd/Source/DOH/string.c branches/gsoc2008-maciekd/Source/DOH/void.c branches/gsoc2008-maciekd/Source/Include/swigwarn.h branches/gsoc2008-maciekd/Source/Modules/allegrocl.cxx branches/gsoc2008-maciekd/Source/Modules/allocate.cxx branches/gsoc2008-maciekd/Source/Modules/browser.cxx branches/gsoc2008-maciekd/Source/Modules/cffi.cxx branches/gsoc2008-maciekd/Source/Modules/chicken.cxx branches/gsoc2008-maciekd/Source/Modules/clisp.cxx branches/gsoc2008-maciekd/Source/Modules/contract.cxx branches/gsoc2008-maciekd/Source/Modules/csharp.cxx branches/gsoc2008-maciekd/Source/Modules/directors.cxx branches/gsoc2008-maciekd/Source/Modules/emit.cxx branches/gsoc2008-maciekd/Source/Modules/guile.cxx branches/gsoc2008-maciekd/Source/Modules/java.cxx branches/gsoc2008-maciekd/Source/Modules/lang.cxx branches/gsoc2008-maciekd/Source/Modules/lua.cxx branches/gsoc2008-maciekd/Source/Modules/main.cxx branches/gsoc2008-maciekd/Source/Modules/modula3.cxx branches/gsoc2008-maciekd/Source/Modules/module.cxx branches/gsoc2008-maciekd/Source/Modules/mzscheme.cxx branches/gsoc2008-maciekd/Source/Modules/ocaml.cxx branches/gsoc2008-maciekd/Source/Modules/octave.cxx branches/gsoc2008-maciekd/Source/Modules/overload.cxx branches/gsoc2008-maciekd/Source/Modules/perl5.cxx branches/gsoc2008-maciekd/Source/Modules/php.cxx branches/gsoc2008-maciekd/Source/Modules/pike.cxx branches/gsoc2008-maciekd/Source/Modules/python.cxx branches/gsoc2008-maciekd/Source/Modules/r.cxx branches/gsoc2008-maciekd/Source/Modules/ruby.cxx branches/gsoc2008-maciekd/Source/Modules/s-exp.cxx branches/gsoc2008-maciekd/Source/Modules/swigmain.cxx branches/gsoc2008-maciekd/Source/Modules/swigmod.h branches/gsoc2008-maciekd/Source/Modules/tcl8.cxx branches/gsoc2008-maciekd/Source/Modules/typepass.cxx branches/gsoc2008-maciekd/Source/Modules/uffi.cxx branches/gsoc2008-maciekd/Source/Modules/utils.cxx branches/gsoc2008-maciekd/Source/Modules/xml.cxx branches/gsoc2008-maciekd/Source/Preprocessor/cpp.c branches/gsoc2008-maciekd/Source/Preprocessor/expr.c branches/gsoc2008-maciekd/Source/Preprocessor/preprocessor.h branches/gsoc2008-maciekd/Source/Swig/cwrap.c branches/gsoc2008-maciekd/Source/Swig/deprecate.c branches/gsoc2008-maciekd/Source/Swig/error.c branches/gsoc2008-maciekd/Source/Swig/fragment.c branches/gsoc2008-maciekd/Source/Swig/getopt.c branches/gsoc2008-maciekd/Source/Swig/include.c branches/gsoc2008-maciekd/Source/Swig/misc.c branches/gsoc2008-maciekd/Source/Swig/naming.c branches/gsoc2008-maciekd/Source/Swig/parms.c branches/gsoc2008-maciekd/Source/Swig/scanner.c branches/gsoc2008-maciekd/Source/Swig/stype.c branches/gsoc2008-maciekd/Source/Swig/swig.h branches/gsoc2008-maciekd/Source/Swig/swigfile.h branches/gsoc2008-maciekd/Source/Swig/swigopt.h branches/gsoc2008-maciekd/Source/Swig/swigparm.h branches/gsoc2008-maciekd/Source/Swig/swigscan.h branches/gsoc2008-maciekd/Source/Swig/swigtree.h branches/gsoc2008-maciekd/Source/Swig/swigwrap.h branches/gsoc2008-maciekd/Source/Swig/symbol.c branches/gsoc2008-maciekd/Source/Swig/tree.c branches/gsoc2008-maciekd/Source/Swig/typemap.c branches/gsoc2008-maciekd/Source/Swig/typeobj.c branches/gsoc2008-maciekd/Source/Swig/typesys.c branches/gsoc2008-maciekd/Source/Swig/wrapfunc.c branches/gsoc2008-maciekd/configure.in Added Paths: ----------- branches/gsoc2008-maciekd/COPYRIGHT branches/gsoc2008-maciekd/LICENSE branches/gsoc2008-maciekd/LICENSE-GPL branches/gsoc2008-maciekd/LICENSE-UNIVERSITIES Removed Paths: ------------- branches/gsoc2008-maciekd/Examples/GIFPlot/ branches/gsoc2008-maciekd/Examples/chicken/zlib/ branches/gsoc2008-maciekd/Examples/xml/example_gif.i branches/gsoc2008-maciekd/LICENSE branches/gsoc2008-maciekd/Lib/tcl/mactclinit.c Property Changed: ---------------- branches/gsoc2008-maciekd/ branches/gsoc2008-maciekd/Examples/php/class/runme.php branches/gsoc2008-maciekd/Examples/php/constants/runme.php branches/gsoc2008-maciekd/Examples/php/cpointer/runme.php branches/gsoc2008-maciekd/Examples/php/disown/runme.php branches/gsoc2008-maciekd/Examples/php/enum/runme.php branches/gsoc2008-maciekd/Examples/php/funcptr/runme.php branches/gsoc2008-maciekd/Examples/php/overloading/runme.php branches/gsoc2008-maciekd/Examples/php/pointer/runme.php branches/gsoc2008-maciekd/Examples/php/pragmas/runme.php branches/gsoc2008-maciekd/Examples/php/proxy/runme.php branches/gsoc2008-maciekd/Examples/php/reference/runme.php branches/gsoc2008-maciekd/Examples/php/simple/runme.php branches/gsoc2008-maciekd/Examples/php/sync/runme.php branches/gsoc2008-maciekd/Examples/php/value/runme.php branches/gsoc2008-maciekd/Examples/php/variables/runme.php branches/gsoc2008-maciekd/Examples/test-suite/chicken/chicken_ext_test_runme.ss branches/gsoc2008-maciekd/Examples/test-suite/chicken_ext_test.i branches/gsoc2008-maciekd/Examples/test-suite/guilescm/guilescm_ext_test_runme.scm branches/gsoc2008-maciekd/Examples/test-suite/guilescm_ext_test.i branches/gsoc2008-maciekd/Examples/test-suite/implicittest.i branches/gsoc2008-maciekd/Examples/test-suite/li_std_functors.i branches/gsoc2008-maciekd/Examples/test-suite/li_std_list.i branches/gsoc2008-maciekd/Examples/test-suite/li_std_pair_extra.i branches/gsoc2008-maciekd/Examples/test-suite/li_std_pair_lang_object.i branches/gsoc2008-maciekd/Examples/test-suite/li_std_queue.i branches/gsoc2008-maciekd/Examples/test-suite/li_std_stack.i branches/gsoc2008-maciekd/Examples/test-suite/li_std_string_extra.i branches/gsoc2008-maciekd/Examples/test-suite/octave/li_std_pair_extra_runme.m branches/gsoc2008-maciekd/Examples/test-suite/octave/li_std_string_extra_runme.m branches/gsoc2008-maciekd/Examples/test-suite/octave/octave_cell_deref_runme.m branches/gsoc2008-maciekd/Examples/test-suite/octave_cell_deref.i branches/gsoc2008-maciekd/Examples/test-suite/php/abstract_inherit_ok_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/abstract_inherit_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/add_link_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/argout_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/arrayptr_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/arrays_global_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/arrays_global_twodim_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/arrays_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/arrays_scope_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/casts_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/class_ignore_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/conversion_namespace_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/conversion_ns_template_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/conversion_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/cpp_static_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/enum_scope_template_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/evil_diamond_ns_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/evil_diamond_prop_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/evil_diamond_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/extend_template_ns_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/extend_template_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/grouping_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/ignore_parameter_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/li_carrays_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/li_std_string_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/rename_scope_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/skel.php branches/gsoc2008-maciekd/Examples/test-suite/php/smart_pointer_rename_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/sym_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/template_arg_typename_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/template_construct_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/tests.php branches/gsoc2008-maciekd/Examples/test-suite/php/typedef_reference_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/typemap_ns_using_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/using1_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/using2_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/valuewrapper_base_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php_namewarn_rename.i branches/gsoc2008-maciekd/Examples/test-suite/python/li_std_pair_extra_runme.py branches/gsoc2008-maciekd/Examples/test-suite/python/li_std_string_extra_runme.py branches/gsoc2008-maciekd/Examples/test-suite/r/r_copy_struct_runme.R branches/gsoc2008-maciekd/Examples/test-suite/r/r_double_delete_runme.R branches/gsoc2008-maciekd/Examples/test-suite/r/r_legacy_runme.R branches/gsoc2008-maciekd/Examples/test-suite/r_copy_struct.i branches/gsoc2008-maciekd/Examples/test-suite/r_double_delete.i branches/gsoc2008-maciekd/Examples/test-suite/r_legacy.i branches/gsoc2008-maciekd/Examples/test-suite/ruby/ruby_keywords_runme.rb branches/gsoc2008-maciekd/Examples/test-suite/ruby/ruby_li_std_speed_runme.rb branches/gsoc2008-maciekd/Examples/test-suite/ruby/ruby_naming_runme.rb branches/gsoc2008-maciekd/Examples/test-suite/ruby/ruby_track_objects_directors_runme.rb branches/gsoc2008-maciekd/Examples/test-suite/ruby/ruby_track_objects_runme.rb branches/gsoc2008-maciekd/Examples/test-suite/ruby_keywords.i branches/gsoc2008-maciekd/Examples/test-suite/ruby_li_std_speed.i branches/gsoc2008-maciekd/Examples/test-suite/ruby_naming.i branches/gsoc2008-maciekd/Examples/test-suite/ruby_track_objects.i branches/gsoc2008-maciekd/Examples/test-suite/ruby_track_objects_directors.i branches/gsoc2008-maciekd/Examples/test-suite/simple_array.i branches/gsoc2008-maciekd/Examples/test-suite/stl_new.i branches/gsoc2008-maciekd/Examples/test-suite/union_parameter.i Property changes on: branches/gsoc2008-maciekd ___________________________________________________________________ Modified: svn:mergeinfo - /branches/swig-2.0:11085-11086,11088-11089 + /branches/swig-2.0:11085-11086,11088-11089 /trunk:11873-11876 Modified: branches/gsoc2008-maciekd/ANNOUNCE =================================================================== --- branches/gsoc2008-maciekd/ANNOUNCE 2010-03-06 12:34:31 UTC (rev 11917) +++ branches/gsoc2008-maciekd/ANNOUNCE 2010-03-06 13:26:09 UTC (rev 11918) @@ -1,10 +1,10 @@ -*** ANNOUNCE: SWIG 1.3.40 (in progress) *** +*** ANNOUNCE: SWIG 2.0.0 (in progress) *** http://www.swig.org -We're pleased to announce SWIG-1.3.40, the latest installment in the -SWIG development effort. SWIG-1.3.40 includes a number of bug fixes +We're pleased to announce SWIG-2.0.0, the latest installment in the +SWIG development effort. SWIG-2.0.0 includes a number of bug fixes and enhancements. What is SWIG? @@ -24,11 +24,11 @@ ------------- The release is available for download on Sourceforge at - http://prdownloads.sourceforge.net/swig/swig-1.3.40.tar.gz + http://prdownloads.sourceforge.net/swig/swig-2.0.0.tar.gz A Windows version is also available at - http://prdownloads.sourceforge.net/swig/swigwin-1.3.40.zip + http://prdownloads.sourceforge.net/swig/swigwin-2.0.0.zip Please report problems with this release to the swig-dev mailing list, details at http://www.swig.org/mail.html. Copied: branches/gsoc2008-maciekd/COPYRIGHT (from rev 11876, trunk/COPYRIGHT) =================================================================== --- branches/gsoc2008-maciekd/COPYRIGHT (rev 0) +++ branches/gsoc2008-maciekd/COPYRIGHT 2010-03-06 13:26:09 UTC (rev 11918) @@ -0,0 +1,63 @@ +SWIG Copyright and Authors +-------------------------- + +Copyright (c) 1995-2010 The SWIG Developers +Copyright (c) 2005-2006 Arizona Board of Regents (University of Arizona). +Copyright (c) 1998-2005 University of Chicago. +Copyright (c) 1995-1998 The University of Utah and the Regents of the University of California + +Portions also copyrighted by: + Network Applied Communication Laboratory, Inc + Information-technology Promotion Agency, Japan + +Active SWIG Developers: + William Fulton (ws...@fu...) (SWIG core, Java, C#, Windows, Cygwin) + Olly Betts (ol...@su...) (PHP) + Joseph Wang (joe...@gm...) (R) + Xavier Delacour (xav...@gm...) (Octave) + +Past SWIG developers and major contributors include: + Dave Beazley (dav...@da...) (SWIG core, Python, Tcl, Perl) + Henning Thielemann (sw...@he...) (Modula3) + Matthias Köppe (mk...@ma...) (Guile, MzScheme) + Luigi Ballabio (lui...@fa...) (STL wrapping) + Mikel Bancroft (mi...@fr...) (Allegro CL) + Surendra Singhi (efu...@ne...) (CLISP, CFFI) + Marcelo Matus (mm...@ac...) (SWIG core, Python, UTL[python,perl,tcl,ruby]) + Art Yerkes (ay...@sp...) (Ocaml) + Lyle Johnson (ly...@us...) (Ruby) + Charlie Savage (cf...@in...) (Ruby) + Thien-Thi Nguyen (tt...@gl...) (build/test/misc) + Richard Palmer (ri...@ma...) (PHP) + Sam Liddicott - Anonova Ltd (sa...@li...) (PHP) + Tim Hockin - Sun Microsystems (th...@su...) (PHP) + Kevin Ruland (PHP) + Shibukawa Yoshiki (Japanese Translation) + Jason Stewart (ja...@op...) (Perl5) + Loic Dachary (Perl5) + David Fletcher (Perl5) + Gary Holt (Perl5) + Masaki Fukushima (Ruby) + Scott Michel (sc...@cs...) (Java directors) + Tiger Feng (son...@cs...) (SWIG core) + Mark Rose (mr...@st...) (Directors) + Jonah Beckford (bec...@us...) (CHICKEN) + Ahmon Dancy (da...@fr...) (Allegro CL) + Dirk Gerrits (Allegro CL) + Neil Cawse (C#) + Harco de Hilster (Java) + Alexey Dyachenko (dya...@fr...) (Tcl) + Bob Techentin (Tcl) + Martin Froehlich <MartinFroehlich@ACM.org> (Guile) + Marcio Luis Teixeira <ma...@ho...> (Guile) + Duncan Temple Lang (R) + Miklos Vajna <vm...@fr...> (PHP directors) + Mark Gossage (ma...@go...) (Lua) + Gonzalo Garramuno (gg...@ad...) (Ruby, Ruby's UTL) + John Lenz (Guile, MzScheme updates, Chicken module, runtime system) + +Past contributors include: + James Michael DuPont, Clark McGrew, Dustin Mitchell, Ian Cooke, Catalin Dumitrescu, Baran + Kovuk, Oleg Tolmatcev, Tal Shalif, Lluis Padro, Chris Seatory, Igor Bely, Robin Dunn + (See CHANGES and CHANGES.current for a more complete list). + Modified: branches/gsoc2008-maciekd/Doc/Manual/Sections.html =================================================================== --- branches/gsoc2008-maciekd/Doc/Manual/Sections.html 2010-03-06 12:34:31 UTC (rev 11917) +++ branches/gsoc2008-maciekd/Doc/Manual/Sections.html 2010-03-06 13:26:09 UTC (rev 11918) @@ -6,7 +6,7 @@ <body bgcolor="#ffffff"> <H1><a name="Sections"></a>SWIG-1.3 Development Documentation</H1> -Last update : SWIG-1.3.40 (in progress) +Last update : SWIG-2.0.0 (in progress) <H2>Sections</H2> Modified: branches/gsoc2008-maciekd/Examples/guile/check.list =================================================================== --- branches/gsoc2008-maciekd/Examples/guile/check.list 2010-03-06 12:34:31 UTC (rev 11917) +++ branches/gsoc2008-maciekd/Examples/guile/check.list 2010-03-06 13:26:09 UTC (rev 11918) @@ -1,6 +1,5 @@ # see top-level Makefile.in constants -matrix simple port multimap Modified: branches/gsoc2008-maciekd/Examples/lua/lua.c =================================================================== --- branches/gsoc2008-maciekd/Examples/lua/lua.c 2010-03-06 12:34:31 UTC (rev 11917) +++ branches/gsoc2008-maciekd/Examples/lua/lua.c 2010-03-06 13:26:09 UTC (rev 11918) @@ -1,5 +1,4 @@ /* -** $Id$ ** Lua stand-alone interpreter ** See Copyright Notice in lua.h */ Property changes on: branches/gsoc2008-maciekd/Examples/php/class/runme.php ___________________________________________________________________ Deleted: svn:mergeinfo - /branches/swig-2.0/Examples/php/class/runme.php:11085-11086,11088-11089 Property changes on: branches/gsoc2008-maciekd/Examples/php/constants/runme.php ___________________________________________________________________ Deleted: svn:mergeinfo - /branches/swig-2.0/Examples/php/constants/runme.php:11085-11086,11088-11089 Property changes on: branches/gsoc2008-maciekd/Examples/php/cpointer/runme.php ___________________________________________________________________ Deleted: svn:mergeinfo - /branches/swig-2.0/Examples/php/cpointer/runme.php:11085-11086,11088-11089 Property changes on: branches/gsoc2008-maciekd/Examples/php/disown/runme.php ___________________________________________________________________ Deleted: svn:mergeinfo - /branches/swig-2.0/Examples/php/disown/runme.php:11085-11086,11088-11089 Property changes on: branches/gsoc2008-maciekd/Examples/php/enum/runme.php ___________________________________________________________________ Deleted: svn:mergeinfo - /branches/swig-2.0/Examples/php/enum/runme.php:11085-11086,11088-11089 Property changes on: branches/gsoc2008-maciekd/Examples/php/funcptr/runme.php ___________________________________________________________________ Deleted: svn:mergeinfo - /branches/swig-2.0/Examples/php/funcptr/runme.php:11085-11086,11088-11089 Property changes on: branches/gsoc2008-maciekd/Examples/php/overloading/runme.php ___________________________________________________________________ Deleted: svn:mergeinfo - /branches/swig-2.0/Examples/php/overloading/runme.php:11085-11086,11088-11089 Property changes on: branches/gsoc2008-maciekd/Examples/php/pointer/runme.php ___________________________________________________________________ Deleted: svn:mergeinfo - /branches/swig-2.0/Examples/php/pointer/runme.php:11085-11086,11088-11089 Property changes on: branches/gsoc2008-maciekd/Examples/php/pragmas/runme.php ___________________________________________________________________ Deleted: svn:mergeinfo - /branches/swig-2.0/Examples/php/pragmas/runme.php:11085-11086,11088-11089 Property changes on: branches/gsoc2008-maciekd/Examples/php/proxy/runme.php ___________________________________________________________________ Deleted: svn:mergeinfo - /branches/swig-2.0/Examples/php/proxy/runme.php:11085-11086,11088-11089 Property changes on: branches/gsoc2008-maciekd/Examples/php/reference/runme.php ___________________________________________________________________ Deleted: svn:mergeinfo - /branches/swig-2.0/Examples/php/reference/runme.php:11085-11086,11088-11089 Property changes on: branches/gsoc2008-maciekd/Examples/php/simple/runme.php ___________________________________________________________________ Deleted: svn:mergeinfo - /branches/swig-2.0/Examples/php/simple/runme.php:11085-11086,11088-11089 Property changes on: branches/gsoc2008-maciekd/Examples/php/sync/runme.php ___________________________________________________________________ Deleted: svn:mergeinfo - /branches/swig-2.0/Examples/php/sync/runme.php:11085-11086,11088-11089 Property changes on: branches/gsoc2008-maciekd/Examples/php/value/runme.php ___________________________________________________________________ Deleted: svn:mergeinfo - /branches/swig-2.0/Examples/php/value/runme.php:11085-11086,11088-11089 Property changes on: branches/gsoc2008-maciekd/Examples/php/variables/runme.php ___________________________________________________________________ Deleted: svn:mergeinfo - /branches/swig-2.0/Examples/php/variables/runme.php:11085-11086,11088-11089 Property changes on: branches/gsoc2008-maciekd/Examples/test-suite/chicken/chicken_ext_test_runme.ss ___________________________________________________________________ Deleted: svn:mergeinfo - /branches/swig-2.0/Examples/test-suite/chicken/chicken_ext_test_runme.ss:11085-11086,11088-11089 Property changes on: branches/gsoc2008-maciekd/Examples/test-suite/chicken_ext_test.i ___________________________________________________________________ Deleted: svn:mergeinfo - /branches/swig-2.0/Examples/test-suite/chicken_ext_test.i:11085-11086,11088-11089 Property changes on: branches/gsoc2008-maciekd/Examples/test-suite/guilescm/guilescm_ext_test_runme.scm ___________________________________________________________________ Deleted: svn:mergeinfo - /branches/swig-2.0/Examples/test-suite/guilescm/guilescm_ext_test_runme.scm:11085-11086,11088-11089 Property changes on: branches/gsoc2008-maciekd/Examples/test-suite/guilescm_ext_test.i ___________________________________________________________________ Deleted: svn:mergeinfo - /branches/swig-2.0/Examples/test-suite/guilescm_ext_test.i:11085-11086,11088-11089 Property changes on: branches/gsoc2008-maciekd/Examples/test-suite/implicittest.i ___________________________________________________________________ Deleted: svn:mergeinfo - /branches/swig-2.0/Examples/test-suite/implicittest.i:11085-11086,11088-11089 Property changes on: branches/gsoc2008-maciekd/Examples/test-suite/li_std_functors.i ___________________________________________________________________ Deleted: svn:mergeinfo - /branches/swig-2.0/Examples/test-suite/li_std_functors.i:11085-11086,11088-11089 Property changes on: branches/gsoc2008-maciekd/Examples/test-suite/li_std_list.i ___________________________________________________________________ Deleted: svn:mergeinfo - /branches/swig-2.0/Examples/test-suite/li_std_list.i:11085-11086,11088-11089 Property changes on: branches/gsoc2008-maciekd/Examples/test-suite/li_std_pair_extra.i ___________________________________________________________________ Deleted: svn:mergeinfo - /branches/swig-2.0/Examples/test-suite/li_std_pair_extra.i:11085-11086,11088-11089 Property changes on: branches/gsoc2008-maciekd/Examples/test-suite/li_std_pair_lang_object.i ___________________________________________________________________ Deleted: svn:mergeinfo - /branches/swig-2.0/Examples/test-suite/li_std_pair_lang_object.i:11085-11086,11088-11089 Modified: branches/gsoc2008-maciekd/Examples/test-suite/li_std_queue.i =================================================================== --- branches/gsoc2008-maciekd/Examples/test-suite/li_std_queue.i 2010-03-06 12:34:31 UTC (rev 11917) +++ branches/gsoc2008-maciekd/Examples/test-suite/li_std_queue.i 2010-03-06 13:26:09 UTC (rev 11918) @@ -1,13 +1,4 @@ -/** - * @file std_queue.i - * @author gga - * @date Sun May 6 01:52:44 2007 - * - * @brief test of std::queue - * - * - */ - +// test of std::queue %module li_std_queue %include std_queue.i Property changes on: branches/gsoc2008-maciekd/Examples/test-suite/li_std_queue.i ___________________________________________________________________ Deleted: svn:mergeinfo - /branches/swig-2.0/Examples/test-suite/li_std_queue.i:11085-11086,11088-11089 Modified: branches/gsoc2008-maciekd/Examples/test-suite/li_std_set.i =================================================================== --- branches/gsoc2008-maciekd/Examples/test-suite/li_std_set.i 2010-03-06 12:34:31 UTC (rev 11917) +++ branches/gsoc2008-maciekd/Examples/test-suite/li_std_set.i 2010-03-06 13:26:09 UTC (rev 11918) @@ -1,18 +1,12 @@ -/** - * @file li_std_set.i - * @author gga - * @date Tue May 1 02:52:47 2007 - * - * @brief a test of set containers. - * Languages should define swig::LANGUAGE_OBJ to be - * an entity of their native pointer type which can be - * included in a STL container. +/* + * a test of set containers. + * Languages should define swig::LANGUAGE_OBJ to be + * an entity of their native pointer type which can be + * included in a STL container. * - * For example: - * swig::LANGUAGE_OBJ is GC_VALUE in Ruby - * swig::LANGUAGE_OBJ is SwigPtr_PyObject in python - * - * + * For example: + * swig::LANGUAGE_OBJ is GC_VALUE in Ruby + * swig::LANGUAGE_OBJ is SwigPtr_PyObject in python */ %module li_std_set Modified: branches/gsoc2008-maciekd/Examples/test-suite/li_std_stack.i =================================================================== --- branches/gsoc2008-maciekd/Examples/test-suite/li_std_stack.i 2010-03-06 12:34:31 UTC (rev 11917) +++ branches/gsoc2008-maciekd/Examples/test-suite/li_std_stack.i 2010-03-06 13:26:09 UTC (rev 11918) @@ -1,13 +1,4 @@ -/** - * @file std_stack.i - * @author gga - * @date Sun May 6 01:52:44 2007 - * - * @brief test of std::stack - * - * - */ - +// test of std::stack %module li_std_stack %include std_stack.i Property changes on: branches/gsoc2008-maciekd/Examples/test-suite/li_std_stack.i ___________________________________________________________________ Deleted: svn:mergeinfo - /branches/swig-2.0/Examples/test-suite/li_std_stack.i:11085-11086,11088-11089 Property changes on: branches/gsoc2008-maciekd/Examples/test-suite/li_std_string_extra.i ___________________________________________________________________ Deleted: svn:mergeinfo - /branches/swig-2.0/Examples/test-suite/li_std_string_extra.i:11085-11086,11088-11089 Property changes on: branches/gsoc2008-maciekd/Examples/test-suite/octave/li_std_pair_extra_runme.m ___________________________________________________________________ Deleted: svn:mergeinfo - /branches/swig-2.0/Examples/test-suite/octave/li_std_pair_extra_runme.m:11085-11086,11088-11089 Property changes on: branches/gsoc2008-maciekd/Examples/test-suite/octave/li_std_string_extra_runme.m ___________________________________________________________________ Deleted: svn:mergeinfo - /branches/swig-2.0/Examples/test-suite/octave/li_std_string_extra_runme.m:11085-11086,11088-11089 Property changes on: branches/gsoc2008-maciekd/Examples/test-suite/octave/octave_cell_deref_runme.m ___________________________________________________________________ Deleted: svn:mergeinfo - /branches/swig-2.0/Examples/test-suite/octave/octave_cell_deref_runme.m:11085-11086,11088-11089 Property changes on: branches/gsoc2008-maciekd/Examples/test-suite/octave_cell_deref.i ___________________________________________________________________ Deleted: svn:mergeinfo - /branches/swig-2.0/Examples/test-suite/octave_cell_deref.i:11085-11086,11088-11089 Property changes on: branches/gsoc2008-maciekd/Examples/test-suite/php/abstract_inherit_ok_runme.php ___________________________________________________________________ Deleted: svn:mergeinfo - /branches/swig-2.0/Examples/test-suite/php/abstract_inherit_ok_runme.php:11085-11086,11088-11089 Property changes on: branches/gsoc2008-maciekd/Examples/test-suite/php/abstract_inherit_runme.php ___________________________________________________________________ Deleted: svn:mergeinfo - /branches/swig-2.0/Examples/test-suite/php/abstract_inherit_runme.php:11085-11086,11088-11089 Property changes on: branches/gsoc2008-maciekd/Examples/test-suite/php/add_link_runme.php ___________________________________________________________________ Deleted: svn:mergeinfo - /branches/swig-2.0/Examples/test-suite/php/add_link_runme.php:11085-11086,11088-11089 Property changes on: branches/gsoc2008-maciekd/Examples/test-suite/php/argout_runme.php ___________________________________________________________________ Deleted: svn:mergeinfo - /branches/swig-2.0/Examples/test-suite/php/argout_runme.php:11085-11086,11088-11089 Property changes on: branches/gsoc2008-maciekd/Examples/test-suite/php/arrayptr_runme.php ___________________________________________________________________ Deleted: svn:mergeinfo - /branches/swig-2.0/Examples/test-suite/php/arrayptr_runme.php:11085-11086,11088-11089 Property changes on: branches/gsoc2008-maciekd/Examples/test-suite/php/arrays_global_runme.php ___________________________________________________________________ Deleted: svn:mergeinfo - /branches/swig-2.0/Examples/test-suite/php/arrays_global_runme.php:11085-11086,11088-11089 Property changes on: branches/gsoc2008-maciekd/Examples/test-suite/php/arrays_global_twodim_runme.php ___________________________________________________________________ Deleted: svn:mergeinfo - /branches/swig-2.0/Examples/test-suite/php/arrays_global_twodim_runme.php:11085-11086,11088-11089 Property changes on: branches/gsoc2008-maciekd/Examples/test-suite/php/arrays_runme.php ___________________________________________________________________ Deleted: svn:mergeinfo - /branches/swig-2.0/Examples/test-suite/php/arrays_runme.php:11085-11086,11088-11089 Property changes on: branches/gsoc2008-maciekd/Examples/test-suite/php/arrays_scope_runme.php ___________________________________________________________________ Deleted: svn:mergeinfo - /branches/swig-2.0/Examples/test-suite/php/arrays_scope_runme.php:11085-11086,11088-11089 Property changes on: branches/gsoc2008-maciekd/Examples/test-suite/php/casts_runme.php ___________________________________________________________________ Deleted: svn:mergeinfo - /branches/swig-2.0/Examples/test-suite/php/casts_runme.php:11085-11086,11088-11089 Property changes on: branches/gsoc2008-maciekd/Examples/test-suite/php/class_ignore_runme.php ___________________________________________________________________ Deleted: svn:mergeinfo - /branches/swig-2.0/Examples/test-suite/php/class_ignore_runme.php:11085-11086,11088-11089 Property changes on: branches/gsoc2008-maciekd/Examples/test-suite/php/conversion_namespace_runme.php ___________________________________________________________________ Deleted: svn:mergeinfo - /branches/swig-2.0/Examples/test-suite/php/conversion_namespace_runme.php:11085-11086,11088-11089 Property changes on: branches/gsoc2008-maciekd/Examples/test-suite/php/conversion_ns_template_runme.php ___________________________________________________________________ Deleted: svn:mergeinfo - /branches/swig-2.0/Examples/test-suite/php/conversion_ns_template_runme.php:11085-11086,11088-11089 Property changes on: branches/gsoc2008-maciekd/Examples/test-suite/php/conversion_runme.php ___________________________________________________________________ Deleted: svn:mergeinfo - /branches/swig-2.0/Examples/test-suite/php/conversion_runme.php:11085-11086,11088-11089 Property changes on: branches/gsoc2008-maciekd/Examples/test-suite/php/cpp_static_runme.php ___________________________________________________________________ Deleted: svn:mergeinfo - /branches/swig-2.0/Examples/test-suite/php/cpp_static_runme.php:11085-11086,11088-11089 Property changes on: branches/gsoc2008-maciekd/Examples/test-suite/php/enum_scope_template_runme.php ___________________________________________________________________ Deleted: svn:mergeinfo - /branches/swig-2.0/Examples/test-suite/php/enum_scope_template_runme.php:11085-11086,11088-11089 Property changes on: branches/gsoc2008-maciekd/Examples/test-suite/php/evil_diamond_ns_runme.php ___________________________________________________________________ Deleted: svn:mergeinfo - /branches/swig-2.0/Examples/test-suite/php/evil_diamond_ns_runme.php:11085-11086,11088-11089 Property changes on: branches/gsoc2008-maciekd/Examples/test-suite/php/evil_diamond_prop_runme.php ___________________________________________________________________ Deleted: svn:mergeinfo - /branches/swig-2.0/Examples/test-suite/php/evil_diamond_prop_runme.php:11085-11086,11088-11089 Property changes on: branches/gsoc2008-maciekd/Examples/test-suite/php/evil_diamond_runme.php ___________________________________________________________________ Deleted: svn:mergeinfo - /branches/swig-2.0/Examples/test-suite/php/evil_diamond_runme.php:11085-11086,11088-11089 Property changes on: branches/gsoc2008-maciekd/Examples/test-suite/php/extend_template_ns_runme.php ___________________________________________________________________ Deleted: svn:mergeinfo - /branches/swig-2.0/Examples/test-suite/php/extend_template_ns_runme.php:11085-11086,11088-11089 Property changes on: branches/gsoc2008-maciekd/Examples/test-suite/php/extend_template_runme.php ___________________________________________________________________ Deleted: svn:mergeinfo - /branches/swig-2.0/Examples/test-suite/php/extend_template_runme.php:11085-11086,11088-11089 Property changes on: branches/gsoc2008-maciekd/Examples/test-suite/php/grouping_runme.php ___________________________________________________________________ Deleted: svn:mergeinfo - /branches/swig-2.0/Examples/test-suite/php/grouping_runme.php:11085-11086,11088-11089 Property changes on: branches/gsoc2008-maciekd/Examples/test-suite/php/ignore_parameter_runme.php ___________________________________________________________________ Deleted: svn:mergeinfo - /branches/swig-2.0/Examples/test-suite/php/ignore_parameter_runme.php:11085-11086,11088-11089 Property changes on: branches/gsoc2008-maciekd/Examples/test-suite/php/li_carrays_runme.php ___________________________________________________________________ Deleted: svn:mergeinfo - /branches/swig-2.0/Examples/test-suite/php/li_carrays_runme.php:11085-11086,11088-11089 Property changes on: branches/gsoc2008-maciekd/Examples/test-suite/php/li_std_string_runme.php ___________________________________________________________________ Deleted: svn:mergeinfo - /branches/swig-2.0/Examples/test-suite/php/li_std_string_runme.php:11085-11086,11088-11089 Property changes on: branches/gsoc2008-maciekd/Examples/test-suite/php/rename_scope_runme.php ___________________________________________________________________ Deleted: svn:mergeinfo - /branches/swig-2.0/Examples/test-suite/php/rename_scope_runme.php:11085-11086,11088-11089 Property changes on: branches/gsoc2008-maciekd/Examples/test-suite/php/skel.php ___________________________________________________________________ Deleted: svn:mergeinfo - /branches/swig-2.0/Examples/test-suite/php/skel.php:11085-11086,11088-11089 Property changes on: branches/gsoc2008-maciekd/Examples/test-suite/php/smart_pointer_rename_runme.php ___________________________________________________________________ Deleted: svn:mergeinfo - /branches/swig-2.0/Examples/test-suite/php/smart_pointer_rename_runme.php:11085-11086,11088-11089 Property changes on: branches/gsoc2008-maciekd/Examples/test-suite/php/sym_runme.php ___________________________________________________________________ Deleted: svn:mergeinfo - /branches/swig-2.0/Examples/test-suite/php/sym_runme.php:11085-11086,11088-11089 Property changes on: branches/gsoc2008-maciekd/Examples/test-suite/php/template_arg_typename_runme.php ___________________________________________________________________ Deleted: svn:mergeinfo - /branches/swig-2.0/Examples/test-suite/php/template_arg_typename_runme.php:11085-11086,11088-11089 Property changes on: branches/gsoc2008-maciekd/Examples/test-suite/php/template_construct_runme.php ___________________________________________________________________ Deleted: svn:mergeinfo - /branches/swig-2.0/Examples/test-suite/php/template_construct_runme.php:11085-11086,11088-11089 Property changes on: branches/gsoc2008-maciekd/Examples/test-suite/php/tests.php ___________________________________________________________________ Deleted: svn:mergeinfo - /branches/swig-2.0/Examples/test-suite/php/tests.php:11085-11086,11088-11089 Property changes on: branches/gsoc2008-maciekd/Examples/test-suite/php/typedef_reference_runme.php ___________________________________________________________________ Deleted: svn:mergeinfo - /branches/swig-2.0/Examples/test-suite/php/typedef_reference_runme.php:11085-11086,11088-11089 Property changes on: branches/gsoc2008-maciekd/Examples/test-suite/php/typemap_ns_using_runme.php ___________________________________________________________________ Deleted: svn:mergeinfo - /branches/swig-2.0/Examples/test-suite/php/typemap_ns_using_runme.php:11085-11086,11088-11089 Property changes on: branches/gsoc2008-maciekd/Examples/test-suite/php/using1_runme.php ___________________________________________________________________ Deleted: svn:mergeinfo - /branches/swig-2.0/Examples/test-suite/php/using1_runme.php:11085-11086,11088-11089 Property changes on: branches/gsoc2008-maciekd/Examples/test-suite/php/using2_runme.php ___________________________________________________________________ Deleted: svn:mergeinfo - /branches/swig-2.0/Examples/test-suite/php/using2_runme.php:11085-11086,11088-11089 Property changes on: branches/gsoc2008-maciekd/Examples/test-suite/php/valuewrapper_base_runme.php ___________________________________________________________________ Deleted: svn:mergeinfo - /branches/swig-2.0/Examples/test-suite/php/valuewrapper_base_runme.php:11085-11086,11088-11089 Property changes on: branches/gsoc2008-maciekd/Examples/test-suite/php_namewarn_rename.i ___________________________________________________________________ Deleted: svn:mergeinfo - /branches/swig-2.0/Examples/test-suite/php_namewarn_rename.i:11085-11086,11088-11089 Property changes on: branches/gsoc2008-maciekd/Examples/test-suite/python/li_std_pair_extra_runme.py ___________________________________________________________________ Deleted: svn:mergeinfo - /branches/swig-2.0/Examples/test-suite/python/li_std_pair_extra_runme.py:11085-11086,11088-11089 Property changes on: branches/gsoc2008-maciekd/Examples/test-suite/python/li_std_string_extra_runme.py ___________________________________________________________________ Deleted: svn:mergeinfo - /branches/swig-2.0/Examples/test-suite/python/li_std_string_extra_runme.py:11085-11086,11088-11089 Property changes on: branches/gsoc2008-maciekd/Examples/test-suite/r/r_copy_struct_runme.R ___________________________________________________________________ Deleted: svn:mergeinfo - /branches/swig-2.0/Examples/test-suite/r/r_copy_struct_runme.R:11085-11086,11088-11089 Property changes on: branches/gsoc2008-maciekd/Examples/test-suite/r/r_double_delete_runme.R ___________________________________________________________________ Deleted: svn:mergeinfo - /branches/swig-2.0/Examples/test-suite/r/r_double_delete_runme.R:11085-11086,11088-11089 Property changes on: branches/gsoc2008-maciekd/Examples/test-suite/r/r_legacy_runme.R ___________________________________________________________________ Deleted: svn:mergeinfo - /branches/swig-2.0/Examples/test-suite/r/r_legacy_runme.R:11085-11086,11088-11089 Property changes on: branches/gsoc2008-maciekd/Examples/test-suite/r_copy_struct.i ___________________________________________________________________ Deleted: svn:mergeinfo - /branches/swig-2.0/Examples/test-suite/r_copy_struct.i:11085-11086,11088-11089 Property changes on: branches/gsoc2008-maciekd/Examples/test-suite/r_double_delete.i ___________________________________________________________________ Deleted: svn:mergeinfo - /branches/swig-2.0/Examples/test-suite/r_double_delete.i:11085-11086,11088-11089 Property changes on: branches/gsoc2008-maciekd/Examples/test-suite/r_legacy.i ___________________________________________________________________ Deleted: svn:mergeinfo - /branches/swig-2.0/Examples/test-suite/r_legacy.i:11085-11086,11088-11089 Property changes on: branches/gsoc2008-maciekd/Examples/test-suite/ruby/ruby_keywords_runme.rb ___________________________________________________________________ Deleted: svn:mergeinfo - /branches/swig-2.0/Examples/test-suite/ruby/ruby_keywords_runme.rb:11085-11086,11088-11089 Modified: branches/gsoc2008-maciekd/Examples/test-suite/ruby/ruby_li_std_speed_runme.rb =================================================================== --- branches/gsoc2008-maciekd/Examples/test-suite/ruby/ruby_li_std_speed_runme.rb 2010-03-06 12:34:31 UTC (rev 11917) +++ branches/gsoc2008-maciekd/Examples/test-suite/ruby/ruby_li_std_speed_runme.rb 2010-03-06 13:26:09 UTC (rev 11918) @@ -3,9 +3,6 @@ # This is a simple speed benchmark suite for std containers, # to verify their O(n) performance. # It is not part of the standard tests. -# -# License:: SWIG -# require 'benchmark' Property changes on: branches/gsoc2008-maciekd/Examples/test-suite/ruby/ruby_li_std_speed_runme.rb ___________________________________________________________________ Deleted: svn:mergeinfo - /branches/swig-2.0/Examples/test-suite/ruby/ruby_li_std_speed_runme.rb:11085-11086,11088-11089 Property changes on: branches/gsoc2008-maciekd/Examples/test-suite/ruby/ruby_naming_runme.rb ___________________________________________________________________ Deleted: svn:mergeinfo - /branches/swig-2.0/Examples/test-suite/ruby/ruby_naming_runme.rb:11085-11086,11088-11089 Property changes on: branches/gsoc2008-maciekd/Examples/test-suite/ruby/ruby_track_objects_directors_runme.rb ___________________________________________________________________ Deleted: svn:mergeinfo - /branches/swig-2.0/Examples/test-suite/ruby/ruby_track_objects_directors_runme.rb:11085-11086,11088-11089 Property changes on: branches/gsoc2008-maciekd/Examples/test-suite/ruby/ruby_track_objects_runme.rb ___________________________________________________________________ Deleted: svn:mergeinfo - /branches/swig-2.0/Examples/test-suite/ruby/ruby_track_objects_runme.rb:11085-11086,11088-11089 Property changes on: branches/gsoc2008-maciekd/Examples/test-suite/ruby_keywords.i ___________________________________________________________________ Deleted: svn:mergeinfo - /branches/swig-2.0/Examples/test-suite/ruby_keywords.i:11085-11086,11088-11089 Modified: branches/gsoc2008-maciekd/Examples/test-suite/ruby_li_std_speed.i =================================================================== --- branches/gsoc2008-maciekd/Examples/test-suite/ruby_li_std_speed.i 2010-03-06 12:34:31 UTC (rev 11917) +++ branches/gsoc2008-maciekd/Examples/test-suite/ruby_li_std_speed.i 2010-03-06 13:26:09 UTC (rev 11918) @@ -1,13 +1,4 @@ -/** - * @file ruby_li_std_speed.i - * @author gga - * @date Fri May 18 18:03:15 2007 - * - * @brief A speed test of the ruby stl - * - * - */ - +// A speed test of the ruby stl %module ruby_li_std_speed %include <std_list.i> Property changes on: branches/gsoc2008-maciekd/Examples/test-suite/ruby_li_std_speed.i ___________________________________________________________________ Deleted: svn:mergeinfo - /branches/swig-2.0/Examples/test-suite/ruby_li_std_speed.i:11085-11086,11088-11089 Property changes on: branches/gsoc2008-maciekd/Examples/test-suite/ruby_naming.i ___________________________________________________________________ Deleted: svn:mergeinfo - /branches/swig-2.0/Examples/test-suite/ruby_naming.i:11085-11086,11088-11089 Property changes on: branches/gsoc2008-maciekd/Examples/test-suite/ruby_track_objects.i ___________________________________________________________________ Deleted: svn:mergeinfo - /branches/swig-2.0/Examples/test-suite/ruby_track_objects.i:11085-11086,11088-11089 Property changes on: branches/gsoc2008-maciekd/Examples/test-suite/ruby_track_objects_directors.i ___________________________________________________________________ Deleted: svn:mergeinfo - /branches/swig-2.0/Examples/test-suite/ruby_track_objects_directors.i:11085-11086,11088-11089 Property changes on: branches/gsoc2008-maciekd/Examples/test-suite/simple_array.i ___________________________________________________________________ Deleted: svn:mergeinfo - /branches/swig-2.0/Examples/test-suite/simple_array.i:11085-11086,11088-11089 Property changes on: branches/gsoc2008-maciekd/Examples/test-suite/stl_new.i ___________________________________________________________________ Deleted: svn:mergeinfo - /branches/swig-2.0/Examples/test-suite/stl_new.i:11085-11086,11088-11089 Property changes on: branches/gsoc2008-maciekd/Examples/test-suite/union_parameter.i ___________________________________________________________________ Deleted: svn:mergeinfo - /branches/swig-2.0/Examples/test-suite/union_parameter.i:11085-11086,11088-11089 Deleted: branches/gsoc2008-maciekd/Examples/xml/example_gif.i =================================================================== --- branches/gsoc2008-maciekd/Examples/xml/example_gif.i 2010-03-06 12:34:31 UTC (rev 11917) +++ branches/gsoc2008-maciekd/Examples/xml/example_gif.i 2010-03-06 13:26:09 UTC (rev 11918) @@ -1,329 +0,0 @@ -/* ----------------------------------------------------------------------------- - * gifplot.h - * - * Main header file for the GIFPlot library. - * - * Author(s) : David Beazley (be...@cs...) - * Copyright (C) 1995-1996 - * - * See the file LICENSE for information on usage and redistribution. - * ----------------------------------------------------------------------------- */ - -#include <stdio.h> -#include <fcntl.h> -#include <float.h> -#include <stdlib.h> -#include <string.h> -#include <limits.h> - -#ifndef GIFPLOT_H - -/* Pixel is 8-bits */ - -typedef unsigned char Pixel; -typedef float Zvalue; - -/* ------------------------------------------------------------------------ - ColorMap - - Definition and methods for colormaps - ------------------------------------------------------------------------ */ - -typedef struct ColorMap { - unsigned char *cmap; - char *name; -} ColorMap; - -extern ColorMap *new_ColorMap(char *filename); -extern void delete_ColorMap(ColorMap *c); -extern void ColorMap_default(ColorMap *c); -extern void ColorMap_assign(ColorMap *c, int index, int r, int g, int b); -extern int ColorMap_getitem(ColorMap *c, int index); -extern void ColorMap_setitem(ColorMap *c, int index, int value); -extern int ColorMap_write(ColorMap *c, char *filename); - -/* Some default colors */ - -#define BLACK 0 -#define WHITE 1 -#define RED 2 -#define GREEN 3 -#define BLUE 4 -#define YELLOW 5 -#define CYAN 6 -#define MAGENTA 7 - -/*------------------------------------------------------------------------- - FrameBuffer - - This structure defines a simple 8 bit framebuffer. - ------------------------------------------------------------------------- */ - -typedef struct FrameBuffer { - Pixel **pixels; - Zvalue **zbuffer; - unsigned int height; - unsigned int width; - int xmin; /* These are used for clipping */ - int ymin; - int xmax; - int ymax; -} FrameBuffer; - -#define ZMIN 1e+36 - -/* FrameBuffer Methods */ - -extern FrameBuffer *new_FrameBuffer(unsigned int width, unsigned int height); -extern void delete_FrameBuffer(FrameBuffer *frame); -extern int FrameBuffer_resize(FrameBuffer *frame, int width, int height); -extern void FrameBuffer_clear(FrameBuffer *frame, Pixel color); -extern void FrameBuffer_plot(FrameBuffer *frame, int x, int y, Pixel color); -extern void FrameBuffer_horizontal(FrameBuffer *frame, int xmin, int xmax, int y, Pixel color); -extern void FrameBuffer_horizontalinterp(FrameBuffer *f, int xmin, int xmax, int y, Pixel c1, Pixel c2); -extern void FrameBuffer_vertical(FrameBuffer *frame, int ymin, int ymax, int x, Pixel color); -extern void FrameBuffer_box(FrameBuffer *frame, int x1, int y1, int x2, int y2, Pixel color); -extern void FrameBuffer_solidbox(FrameBuffer *frame, int x1, int y1, int x2, int y2, Pixel color); -extern void FrameBuffer_interpbox(FrameBuffer *f, int x1, int y1, int x2, int y2, Pixel c1, Pixel c2, Pixel c3, Pixel c4); -extern void Fr... [truncated message content] |
From: <wsf...@us...> - 2012-05-06 00:50:09
|
Revision: 13032 http://swig.svn.sourceforge.net/swig/?rev=13032&view=rev Author: wsfulton Date: 2012-05-06 00:49:56 +0000 (Sun, 06 May 2012) Log Message: ----------- Revert rev 11918 "merge revisions 11872:11876 from trunk to gsoc2008-maciekd branch - license changes" This reverts commit ec942f04ca8b33520442f079e2ea2d8d3e4be73c. From: William S Fulton <ws...@fu...> Revision Links: -------------- http://swig.svn.sourceforge.net/swig/?rev=11918&view=rev Modified Paths: -------------- branches/gsoc2008-maciekd/ANNOUNCE branches/gsoc2008-maciekd/Doc/Manual/Sections.html branches/gsoc2008-maciekd/Examples/guile/check.list branches/gsoc2008-maciekd/Examples/lua/lua.c branches/gsoc2008-maciekd/Examples/test-suite/li_std_queue.i branches/gsoc2008-maciekd/Examples/test-suite/li_std_set.i branches/gsoc2008-maciekd/Examples/test-suite/li_std_stack.i branches/gsoc2008-maciekd/Examples/test-suite/ruby/ruby_li_std_speed_runme.rb branches/gsoc2008-maciekd/Examples/test-suite/ruby_li_std_speed.i branches/gsoc2008-maciekd/LICENSE branches/gsoc2008-maciekd/Lib/allegrocl/allegrocl.swg branches/gsoc2008-maciekd/Lib/allegrocl/longlongs.i branches/gsoc2008-maciekd/Lib/allegrocl/std_list.i branches/gsoc2008-maciekd/Lib/allegrocl/std_string.i branches/gsoc2008-maciekd/Lib/attribute.i branches/gsoc2008-maciekd/Lib/carrays.i branches/gsoc2008-maciekd/Lib/cdata.i branches/gsoc2008-maciekd/Lib/chicken/chicken.swg branches/gsoc2008-maciekd/Lib/chicken/chickenrun.swg branches/gsoc2008-maciekd/Lib/chicken/multi-generic.scm branches/gsoc2008-maciekd/Lib/chicken/std_string.i branches/gsoc2008-maciekd/Lib/chicken/typemaps.i branches/gsoc2008-maciekd/Lib/clisp/clisp.swg branches/gsoc2008-maciekd/Lib/cmalloc.i branches/gsoc2008-maciekd/Lib/constraints.i branches/gsoc2008-maciekd/Lib/cpointer.i branches/gsoc2008-maciekd/Lib/csharp/arrays_csharp.i branches/gsoc2008-maciekd/Lib/csharp/csharp.swg branches/gsoc2008-maciekd/Lib/csharp/csharphead.swg branches/gsoc2008-maciekd/Lib/csharp/director.swg branches/gsoc2008-maciekd/Lib/csharp/enums.swg branches/gsoc2008-maciekd/Lib/csharp/enumsimple.swg branches/gsoc2008-maciekd/Lib/csharp/enumtypesafe.swg branches/gsoc2008-maciekd/Lib/csharp/std_except.i branches/gsoc2008-maciekd/Lib/csharp/std_map.i branches/gsoc2008-maciekd/Lib/csharp/std_pair.i branches/gsoc2008-maciekd/Lib/csharp/std_string.i branches/gsoc2008-maciekd/Lib/csharp/std_vector.i branches/gsoc2008-maciekd/Lib/csharp/std_wstring.i branches/gsoc2008-maciekd/Lib/csharp/stl.i branches/gsoc2008-maciekd/Lib/csharp/typemaps.i branches/gsoc2008-maciekd/Lib/csharp/wchar.i branches/gsoc2008-maciekd/Lib/cstring.i branches/gsoc2008-maciekd/Lib/cwstring.i branches/gsoc2008-maciekd/Lib/exception.i branches/gsoc2008-maciekd/Lib/gcj/cni.swg branches/gsoc2008-maciekd/Lib/guile/common.scm branches/gsoc2008-maciekd/Lib/guile/cplusplus.i branches/gsoc2008-maciekd/Lib/guile/guile.i branches/gsoc2008-maciekd/Lib/guile/guile_gh.swg branches/gsoc2008-maciekd/Lib/guile/guile_gh_run.swg branches/gsoc2008-maciekd/Lib/guile/guile_scm.swg branches/gsoc2008-maciekd/Lib/guile/guile_scm_run.swg branches/gsoc2008-maciekd/Lib/guile/guilemain.i branches/gsoc2008-maciekd/Lib/guile/interpreter.i branches/gsoc2008-maciekd/Lib/guile/list-vector.i branches/gsoc2008-maciekd/Lib/guile/pointer-in-out.i branches/gsoc2008-maciekd/Lib/guile/ports.i branches/gsoc2008-maciekd/Lib/guile/std_common.i branches/gsoc2008-maciekd/Lib/guile/std_map.i branches/gsoc2008-maciekd/Lib/guile/std_pair.i branches/gsoc2008-maciekd/Lib/guile/std_string.i branches/gsoc2008-maciekd/Lib/guile/std_vector.i branches/gsoc2008-maciekd/Lib/guile/stl.i branches/gsoc2008-maciekd/Lib/guile/typemaps.i branches/gsoc2008-maciekd/Lib/inttypes.i branches/gsoc2008-maciekd/Lib/java/arrays_java.i branches/gsoc2008-maciekd/Lib/java/director.swg branches/gsoc2008-maciekd/Lib/java/enums.swg branches/gsoc2008-maciekd/Lib/java/enumsimple.swg branches/gsoc2008-maciekd/Lib/java/enumtypesafe.swg branches/gsoc2008-maciekd/Lib/java/enumtypeunsafe.swg branches/gsoc2008-maciekd/Lib/java/java.swg branches/gsoc2008-maciekd/Lib/java/javahead.swg branches/gsoc2008-maciekd/Lib/java/std_except.i branches/gsoc2008-maciekd/Lib/java/std_map.i branches/gsoc2008-maciekd/Lib/java/std_pair.i branches/gsoc2008-maciekd/Lib/java/std_string.i branches/gsoc2008-maciekd/Lib/java/std_vector.i branches/gsoc2008-maciekd/Lib/java/std_wstring.i branches/gsoc2008-maciekd/Lib/java/stl.i branches/gsoc2008-maciekd/Lib/java/typemaps.i branches/gsoc2008-maciekd/Lib/java/various.i branches/gsoc2008-maciekd/Lib/lua/_std_common.i branches/gsoc2008-maciekd/Lib/lua/lua.swg branches/gsoc2008-maciekd/Lib/lua/lua_fnptr.i branches/gsoc2008-maciekd/Lib/lua/luarun.swg branches/gsoc2008-maciekd/Lib/lua/luaruntime.swg branches/gsoc2008-maciekd/Lib/lua/luatypemaps.swg branches/gsoc2008-maciekd/Lib/lua/std_except.i branches/gsoc2008-maciekd/Lib/lua/std_map.i branches/gsoc2008-maciekd/Lib/lua/std_pair.i branches/gsoc2008-maciekd/Lib/lua/std_string.i branches/gsoc2008-maciekd/Lib/lua/std_vector.i branches/gsoc2008-maciekd/Lib/lua/stl.i branches/gsoc2008-maciekd/Lib/lua/typemaps.i branches/gsoc2008-maciekd/Lib/lua/wchar.i branches/gsoc2008-maciekd/Lib/math.i branches/gsoc2008-maciekd/Lib/modula3/modula3.swg branches/gsoc2008-maciekd/Lib/modula3/modula3head.swg branches/gsoc2008-maciekd/Lib/modula3/typemaps.i branches/gsoc2008-maciekd/Lib/mzscheme/mzrun.swg branches/gsoc2008-maciekd/Lib/mzscheme/mzscheme.swg branches/gsoc2008-maciekd/Lib/mzscheme/std_common.i branches/gsoc2008-maciekd/Lib/mzscheme/std_map.i branches/gsoc2008-maciekd/Lib/mzscheme/std_pair.i branches/gsoc2008-maciekd/Lib/mzscheme/std_string.i branches/gsoc2008-maciekd/Lib/mzscheme/std_vector.i branches/gsoc2008-maciekd/Lib/mzscheme/stl.i branches/gsoc2008-maciekd/Lib/mzscheme/typemaps.i branches/gsoc2008-maciekd/Lib/ocaml/cstring.i branches/gsoc2008-maciekd/Lib/ocaml/director.swg branches/gsoc2008-maciekd/Lib/ocaml/ocaml.i branches/gsoc2008-maciekd/Lib/ocaml/ocamldec.swg branches/gsoc2008-maciekd/Lib/ocaml/std_common.i branches/gsoc2008-maciekd/Lib/ocaml/std_deque.i branches/gsoc2008-maciekd/Lib/ocaml/std_list.i branches/gsoc2008-maciekd/Lib/ocaml/std_map.i branches/gsoc2008-maciekd/Lib/ocaml/std_pair.i branches/gsoc2008-maciekd/Lib/ocaml/std_string.i branches/gsoc2008-maciekd/Lib/ocaml/std_vector.i branches/gsoc2008-maciekd/Lib/ocaml/stl.i branches/gsoc2008-maciekd/Lib/ocaml/typecheck.i branches/gsoc2008-maciekd/Lib/ocaml/typemaps.i branches/gsoc2008-maciekd/Lib/octave/octcontainer.swg branches/gsoc2008-maciekd/Lib/octave/octiterators.swg branches/gsoc2008-maciekd/Lib/perl5/perlmain.i branches/gsoc2008-maciekd/Lib/perl5/reference.i branches/gsoc2008-maciekd/Lib/perl5/std_common.i branches/gsoc2008-maciekd/Lib/perl5/std_list.i branches/gsoc2008-maciekd/Lib/perl5/std_map.i branches/gsoc2008-maciekd/Lib/perl5/std_pair.i branches/gsoc2008-maciekd/Lib/perl5/std_vector.i branches/gsoc2008-maciekd/Lib/perl5/stl.i branches/gsoc2008-maciekd/Lib/perl5/typemaps.i branches/gsoc2008-maciekd/Lib/php/const.i branches/gsoc2008-maciekd/Lib/php/globalvar.i branches/gsoc2008-maciekd/Lib/php/php.swg branches/gsoc2008-maciekd/Lib/php/phpkw.swg branches/gsoc2008-maciekd/Lib/php/phprun.swg branches/gsoc2008-maciekd/Lib/php/std_common.i branches/gsoc2008-maciekd/Lib/php/std_map.i branches/gsoc2008-maciekd/Lib/php/std_pair.i branches/gsoc2008-maciekd/Lib/php/std_string.i branches/gsoc2008-maciekd/Lib/php/std_vector.i branches/gsoc2008-maciekd/Lib/php/stl.i branches/gsoc2008-maciekd/Lib/php/typemaps.i branches/gsoc2008-maciekd/Lib/pike/pike.swg branches/gsoc2008-maciekd/Lib/pike/pikerun.swg branches/gsoc2008-maciekd/Lib/pike/std_string.i branches/gsoc2008-maciekd/Lib/pointer.i branches/gsoc2008-maciekd/Lib/python/ccomplex.i branches/gsoc2008-maciekd/Lib/python/director.swg branches/gsoc2008-maciekd/Lib/python/embed15.i branches/gsoc2008-maciekd/Lib/python/file.i branches/gsoc2008-maciekd/Lib/python/pycontainer.swg branches/gsoc2008-maciekd/Lib/python/pyiterators.swg branches/gsoc2008-maciekd/Lib/python/pyrun.swg branches/gsoc2008-maciekd/Lib/python/typemaps.i branches/gsoc2008-maciekd/Lib/ruby/director.swg branches/gsoc2008-maciekd/Lib/ruby/rubyautodoc.swg branches/gsoc2008-maciekd/Lib/ruby/rubycontainer.swg branches/gsoc2008-maciekd/Lib/ruby/rubycontainer_extended.swg branches/gsoc2008-maciekd/Lib/ruby/rubyiterators.swg branches/gsoc2008-maciekd/Lib/ruby/rubyprimtypes.swg branches/gsoc2008-maciekd/Lib/ruby/rubyrun.swg branches/gsoc2008-maciekd/Lib/ruby/rubystdautodoc.swg branches/gsoc2008-maciekd/Lib/ruby/rubytracking.swg branches/gsoc2008-maciekd/Lib/ruby/rubywstrings.swg branches/gsoc2008-maciekd/Lib/ruby/stl.i branches/gsoc2008-maciekd/Lib/ruby/typemaps.i branches/gsoc2008-maciekd/Lib/std/_std_deque.i branches/gsoc2008-maciekd/Lib/std_except.i branches/gsoc2008-maciekd/Lib/stdint.i branches/gsoc2008-maciekd/Lib/stl.i branches/gsoc2008-maciekd/Lib/swigarch.i branches/gsoc2008-maciekd/Lib/swigrun.i branches/gsoc2008-maciekd/Lib/tcl/mactkinit.c branches/gsoc2008-maciekd/Lib/tcl/std_common.i branches/gsoc2008-maciekd/Lib/tcl/std_pair.i branches/gsoc2008-maciekd/Lib/tcl/std_vector.i branches/gsoc2008-maciekd/Lib/tcl/stl.i branches/gsoc2008-maciekd/Lib/tcl/tcl8.swg branches/gsoc2008-maciekd/Lib/tcl/tclinterp.i branches/gsoc2008-maciekd/Lib/tcl/tclopers.swg branches/gsoc2008-maciekd/Lib/tcl/tclresult.i branches/gsoc2008-maciekd/Lib/tcl/tclrun.swg branches/gsoc2008-maciekd/Lib/tcl/tclsh.i branches/gsoc2008-maciekd/Lib/tcl/tclwstrings.swg branches/gsoc2008-maciekd/Lib/tcl/typemaps.i branches/gsoc2008-maciekd/Lib/tcl/wish.i branches/gsoc2008-maciekd/Lib/typemaps/attribute.swg branches/gsoc2008-maciekd/Lib/typemaps/carrays.swg branches/gsoc2008-maciekd/Lib/typemaps/cdata.swg branches/gsoc2008-maciekd/Lib/typemaps/cmalloc.swg branches/gsoc2008-maciekd/Lib/typemaps/cpointer.swg branches/gsoc2008-maciekd/Lib/typemaps/cstrings.swg branches/gsoc2008-maciekd/Lib/typemaps/exception.swg branches/gsoc2008-maciekd/Lib/typemaps/ptrtypes.swg branches/gsoc2008-maciekd/Lib/typemaps/swigtypemaps.swg branches/gsoc2008-maciekd/Lib/typemaps/typemaps.swg branches/gsoc2008-maciekd/Lib/uffi/uffi.swg branches/gsoc2008-maciekd/Lib/wchar.i branches/gsoc2008-maciekd/Lib/windows.i branches/gsoc2008-maciekd/Makefile.in branches/gsoc2008-maciekd/README branches/gsoc2008-maciekd/Source/CParse/cparse.h branches/gsoc2008-maciekd/Source/CParse/cscanner.c branches/gsoc2008-maciekd/Source/CParse/parser.y branches/gsoc2008-maciekd/Source/CParse/templ.c branches/gsoc2008-maciekd/Source/CParse/util.c branches/gsoc2008-maciekd/Source/DOH/base.c branches/gsoc2008-maciekd/Source/DOH/doh.h branches/gsoc2008-maciekd/Source/DOH/dohint.h branches/gsoc2008-maciekd/Source/DOH/file.c branches/gsoc2008-maciekd/Source/DOH/fio.c branches/gsoc2008-maciekd/Source/DOH/hash.c branches/gsoc2008-maciekd/Source/DOH/list.c branches/gsoc2008-maciekd/Source/DOH/memory.c branches/gsoc2008-maciekd/Source/DOH/string.c branches/gsoc2008-maciekd/Source/DOH/void.c branches/gsoc2008-maciekd/Source/Include/swigwarn.h branches/gsoc2008-maciekd/Source/Modules/allegrocl.cxx branches/gsoc2008-maciekd/Source/Modules/allocate.cxx branches/gsoc2008-maciekd/Source/Modules/browser.cxx branches/gsoc2008-maciekd/Source/Modules/cffi.cxx branches/gsoc2008-maciekd/Source/Modules/chicken.cxx branches/gsoc2008-maciekd/Source/Modules/clisp.cxx branches/gsoc2008-maciekd/Source/Modules/contract.cxx branches/gsoc2008-maciekd/Source/Modules/csharp.cxx branches/gsoc2008-maciekd/Source/Modules/directors.cxx branches/gsoc2008-maciekd/Source/Modules/emit.cxx branches/gsoc2008-maciekd/Source/Modules/guile.cxx branches/gsoc2008-maciekd/Source/Modules/java.cxx branches/gsoc2008-maciekd/Source/Modules/lang.cxx branches/gsoc2008-maciekd/Source/Modules/lua.cxx branches/gsoc2008-maciekd/Source/Modules/main.cxx branches/gsoc2008-maciekd/Source/Modules/modula3.cxx branches/gsoc2008-maciekd/Source/Modules/module.cxx branches/gsoc2008-maciekd/Source/Modules/mzscheme.cxx branches/gsoc2008-maciekd/Source/Modules/ocaml.cxx branches/gsoc2008-maciekd/Source/Modules/octave.cxx branches/gsoc2008-maciekd/Source/Modules/overload.cxx branches/gsoc2008-maciekd/Source/Modules/perl5.cxx branches/gsoc2008-maciekd/Source/Modules/php.cxx branches/gsoc2008-maciekd/Source/Modules/pike.cxx branches/gsoc2008-maciekd/Source/Modules/python.cxx branches/gsoc2008-maciekd/Source/Modules/r.cxx branches/gsoc2008-maciekd/Source/Modules/ruby.cxx branches/gsoc2008-maciekd/Source/Modules/s-exp.cxx branches/gsoc2008-maciekd/Source/Modules/swigmain.cxx branches/gsoc2008-maciekd/Source/Modules/swigmod.h branches/gsoc2008-maciekd/Source/Modules/tcl8.cxx branches/gsoc2008-maciekd/Source/Modules/typepass.cxx branches/gsoc2008-maciekd/Source/Modules/uffi.cxx branches/gsoc2008-maciekd/Source/Modules/utils.cxx branches/gsoc2008-maciekd/Source/Modules/xml.cxx branches/gsoc2008-maciekd/Source/Preprocessor/cpp.c branches/gsoc2008-maciekd/Source/Preprocessor/expr.c branches/gsoc2008-maciekd/Source/Preprocessor/preprocessor.h branches/gsoc2008-maciekd/Source/Swig/cwrap.c branches/gsoc2008-maciekd/Source/Swig/deprecate.c branches/gsoc2008-maciekd/Source/Swig/error.c branches/gsoc2008-maciekd/Source/Swig/fragment.c branches/gsoc2008-maciekd/Source/Swig/getopt.c branches/gsoc2008-maciekd/Source/Swig/include.c branches/gsoc2008-maciekd/Source/Swig/misc.c branches/gsoc2008-maciekd/Source/Swig/naming.c branches/gsoc2008-maciekd/Source/Swig/parms.c branches/gsoc2008-maciekd/Source/Swig/scanner.c branches/gsoc2008-maciekd/Source/Swig/stype.c branches/gsoc2008-maciekd/Source/Swig/swig.h branches/gsoc2008-maciekd/Source/Swig/swigfile.h branches/gsoc2008-maciekd/Source/Swig/swigopt.h branches/gsoc2008-maciekd/Source/Swig/swigparm.h branches/gsoc2008-maciekd/Source/Swig/swigscan.h branches/gsoc2008-maciekd/Source/Swig/swigtree.h branches/gsoc2008-maciekd/Source/Swig/swigwrap.h branches/gsoc2008-maciekd/Source/Swig/symbol.c branches/gsoc2008-maciekd/Source/Swig/tree.c branches/gsoc2008-maciekd/Source/Swig/typemap.c branches/gsoc2008-maciekd/Source/Swig/typeobj.c branches/gsoc2008-maciekd/Source/Swig/typesys.c branches/gsoc2008-maciekd/Source/Swig/wrapfunc.c branches/gsoc2008-maciekd/configure.in Added Paths: ----------- branches/gsoc2008-maciekd/Examples/GIFPlot/ branches/gsoc2008-maciekd/Examples/GIFPlot/C/ branches/gsoc2008-maciekd/Examples/GIFPlot/C/Makefile branches/gsoc2008-maciekd/Examples/GIFPlot/C/gifplot.i branches/gsoc2008-maciekd/Examples/GIFPlot/Chicken/ branches/gsoc2008-maciekd/Examples/GIFPlot/Chicken/check.list branches/gsoc2008-maciekd/Examples/GIFPlot/Chicken/full/ branches/gsoc2008-maciekd/Examples/GIFPlot/Chicken/full/Makefile branches/gsoc2008-maciekd/Examples/GIFPlot/Chicken/full/README branches/gsoc2008-maciekd/Examples/GIFPlot/Chicken/full/cmap branches/gsoc2008-maciekd/Examples/GIFPlot/Chicken/full/gifplot.i branches/gsoc2008-maciekd/Examples/GIFPlot/Chicken/full/test-gifplot.scm branches/gsoc2008-maciekd/Examples/GIFPlot/Chicken/simple/ branches/gsoc2008-maciekd/Examples/GIFPlot/Chicken/simple/Makefile branches/gsoc2008-maciekd/Examples/GIFPlot/Chicken/simple/README branches/gsoc2008-maciekd/Examples/GIFPlot/Chicken/simple/simple.i branches/gsoc2008-maciekd/Examples/GIFPlot/Chicken/simple/test-simple.scm branches/gsoc2008-maciekd/Examples/GIFPlot/Common-Lisp/ branches/gsoc2008-maciekd/Examples/GIFPlot/Common-Lisp/full/ branches/gsoc2008-maciekd/Examples/GIFPlot/Common-Lisp/full/cmap branches/gsoc2008-maciekd/Examples/GIFPlot/Common-Lisp/full/gifplot.i branches/gsoc2008-maciekd/Examples/GIFPlot/Common-Lisp/full/runme.lisp branches/gsoc2008-maciekd/Examples/GIFPlot/Guile/ branches/gsoc2008-maciekd/Examples/GIFPlot/Guile/check.list branches/gsoc2008-maciekd/Examples/GIFPlot/Guile/full/ branches/gsoc2008-maciekd/Examples/GIFPlot/Guile/full/Makefile branches/gsoc2008-maciekd/Examples/GIFPlot/Guile/full/README branches/gsoc2008-maciekd/Examples/GIFPlot/Guile/full/cmap branches/gsoc2008-maciekd/Examples/GIFPlot/Guile/full/gifplot.i branches/gsoc2008-maciekd/Examples/GIFPlot/Guile/full/runme.scm branches/gsoc2008-maciekd/Examples/GIFPlot/Guile/simple/ branches/gsoc2008-maciekd/Examples/GIFPlot/Guile/simple/Makefile branches/gsoc2008-maciekd/Examples/GIFPlot/Guile/simple/README branches/gsoc2008-maciekd/Examples/GIFPlot/Guile/simple/runme.scm branches/gsoc2008-maciekd/Examples/GIFPlot/Guile/simple/simple.i branches/gsoc2008-maciekd/Examples/GIFPlot/Include/ branches/gsoc2008-maciekd/Examples/GIFPlot/Include/gifplot.h branches/gsoc2008-maciekd/Examples/GIFPlot/Interface/ branches/gsoc2008-maciekd/Examples/GIFPlot/Interface/gifplot.i branches/gsoc2008-maciekd/Examples/GIFPlot/Java/ branches/gsoc2008-maciekd/Examples/GIFPlot/Java/check.list branches/gsoc2008-maciekd/Examples/GIFPlot/Java/full/ branches/gsoc2008-maciekd/Examples/GIFPlot/Java/full/Makefile branches/gsoc2008-maciekd/Examples/GIFPlot/Java/full/README branches/gsoc2008-maciekd/Examples/GIFPlot/Java/full/cmap branches/gsoc2008-maciekd/Examples/GIFPlot/Java/full/gifplot.i branches/gsoc2008-maciekd/Examples/GIFPlot/Java/full/runme.java branches/gsoc2008-maciekd/Examples/GIFPlot/Java/shadow/ branches/gsoc2008-maciekd/Examples/GIFPlot/Java/shadow/Makefile branches/gsoc2008-maciekd/Examples/GIFPlot/Java/shadow/README branches/gsoc2008-maciekd/Examples/GIFPlot/Java/shadow/cmap branches/gsoc2008-maciekd/Examples/GIFPlot/Java/shadow/runme.java branches/gsoc2008-maciekd/Examples/GIFPlot/Java/simple/ branches/gsoc2008-maciekd/Examples/GIFPlot/Java/simple/Makefile branches/gsoc2008-maciekd/Examples/GIFPlot/Java/simple/README branches/gsoc2008-maciekd/Examples/GIFPlot/Java/simple/runme.java branches/gsoc2008-maciekd/Examples/GIFPlot/Java/simple/simple.i branches/gsoc2008-maciekd/Examples/GIFPlot/Lib/ branches/gsoc2008-maciekd/Examples/GIFPlot/Lib/Makefile.in branches/gsoc2008-maciekd/Examples/GIFPlot/Lib/color.c branches/gsoc2008-maciekd/Examples/GIFPlot/Lib/font.c branches/gsoc2008-maciekd/Examples/GIFPlot/Lib/frame.c branches/gsoc2008-maciekd/Examples/GIFPlot/Lib/gif.c branches/gsoc2008-maciekd/Examples/GIFPlot/Lib/matrix.c branches/gsoc2008-maciekd/Examples/GIFPlot/Lib/pixmap.c branches/gsoc2008-maciekd/Examples/GIFPlot/Lib/plot2d.c branches/gsoc2008-maciekd/Examples/GIFPlot/Lib/plot3d.c branches/gsoc2008-maciekd/Examples/GIFPlot/Makefile.in branches/gsoc2008-maciekd/Examples/GIFPlot/Ocaml/ branches/gsoc2008-maciekd/Examples/GIFPlot/Ocaml/check.list branches/gsoc2008-maciekd/Examples/GIFPlot/Ocaml/full/ branches/gsoc2008-maciekd/Examples/GIFPlot/Ocaml/full/Makefile branches/gsoc2008-maciekd/Examples/GIFPlot/Ocaml/full/README branches/gsoc2008-maciekd/Examples/GIFPlot/Ocaml/full/cmap branches/gsoc2008-maciekd/Examples/GIFPlot/Ocaml/full/gifplot.i branches/gsoc2008-maciekd/Examples/GIFPlot/Ocaml/full/runme.ml branches/gsoc2008-maciekd/Examples/GIFPlot/Ocaml/simple/ branches/gsoc2008-maciekd/Examples/GIFPlot/Ocaml/simple/Makefile branches/gsoc2008-maciekd/Examples/GIFPlot/Ocaml/simple/cmap branches/gsoc2008-maciekd/Examples/GIFPlot/Ocaml/simple/runme.ml branches/gsoc2008-maciekd/Examples/GIFPlot/Ocaml/simple/simple.i branches/gsoc2008-maciekd/Examples/GIFPlot/Perl5/ branches/gsoc2008-maciekd/Examples/GIFPlot/Perl5/check.list branches/gsoc2008-maciekd/Examples/GIFPlot/Perl5/full/ branches/gsoc2008-maciekd/Examples/GIFPlot/Perl5/full/Makefile branches/gsoc2008-maciekd/Examples/GIFPlot/Perl5/full/README branches/gsoc2008-maciekd/Examples/GIFPlot/Perl5/full/cmap branches/gsoc2008-maciekd/Examples/GIFPlot/Perl5/full/gifplot.i branches/gsoc2008-maciekd/Examples/GIFPlot/Perl5/full/runme.pl branches/gsoc2008-maciekd/Examples/GIFPlot/Perl5/shadow/ branches/gsoc2008-maciekd/Examples/GIFPlot/Perl5/shadow/Makefile branches/gsoc2008-maciekd/Examples/GIFPlot/Perl5/shadow/README branches/gsoc2008-maciekd/Examples/GIFPlot/Perl5/shadow/cmap branches/gsoc2008-maciekd/Examples/GIFPlot/Perl5/shadow/runme.pl branches/gsoc2008-maciekd/Examples/GIFPlot/Perl5/simple/ branches/gsoc2008-maciekd/Examples/GIFPlot/Perl5/simple/Makefile branches/gsoc2008-maciekd/Examples/GIFPlot/Perl5/simple/README branches/gsoc2008-maciekd/Examples/GIFPlot/Perl5/simple/runme.pl branches/gsoc2008-maciekd/Examples/GIFPlot/Perl5/simple/simple.i branches/gsoc2008-maciekd/Examples/GIFPlot/Php/ branches/gsoc2008-maciekd/Examples/GIFPlot/Php/check.list branches/gsoc2008-maciekd/Examples/GIFPlot/Php/full/ branches/gsoc2008-maciekd/Examples/GIFPlot/Php/full/Makefile branches/gsoc2008-maciekd/Examples/GIFPlot/Php/full/README branches/gsoc2008-maciekd/Examples/GIFPlot/Php/full/cmap branches/gsoc2008-maciekd/Examples/GIFPlot/Php/full/gifplot.i branches/gsoc2008-maciekd/Examples/GIFPlot/Php/full/runme.php branches/gsoc2008-maciekd/Examples/GIFPlot/Php/shadow/ branches/gsoc2008-maciekd/Examples/GIFPlot/Php/shadow/Makefile branches/gsoc2008-maciekd/Examples/GIFPlot/Php/shadow/README branches/gsoc2008-maciekd/Examples/GIFPlot/Php/shadow/cmap branches/gsoc2008-maciekd/Examples/GIFPlot/Php/shadow/runme.php branches/gsoc2008-maciekd/Examples/GIFPlot/Php/simple/ branches/gsoc2008-maciekd/Examples/GIFPlot/Php/simple/Makefile branches/gsoc2008-maciekd/Examples/GIFPlot/Php/simple/README branches/gsoc2008-maciekd/Examples/GIFPlot/Php/simple/runme.php branches/gsoc2008-maciekd/Examples/GIFPlot/Php/simple/simple.i branches/gsoc2008-maciekd/Examples/GIFPlot/Pike/ branches/gsoc2008-maciekd/Examples/GIFPlot/Pike/check.list branches/gsoc2008-maciekd/Examples/GIFPlot/Pike/simple/ branches/gsoc2008-maciekd/Examples/GIFPlot/Pike/simple/Makefile branches/gsoc2008-maciekd/Examples/GIFPlot/Pike/simple/README branches/gsoc2008-maciekd/Examples/GIFPlot/Pike/simple/runme.pike branches/gsoc2008-maciekd/Examples/GIFPlot/Pike/simple/simple.i branches/gsoc2008-maciekd/Examples/GIFPlot/Python/ branches/gsoc2008-maciekd/Examples/GIFPlot/Python/check.list branches/gsoc2008-maciekd/Examples/GIFPlot/Python/full/ branches/gsoc2008-maciekd/Examples/GIFPlot/Python/full/Makefile branches/gsoc2008-maciekd/Examples/GIFPlot/Python/full/README branches/gsoc2008-maciekd/Examples/GIFPlot/Python/full/cmap branches/gsoc2008-maciekd/Examples/GIFPlot/Python/full/gifplot.i branches/gsoc2008-maciekd/Examples/GIFPlot/Python/full/runme.py branches/gsoc2008-maciekd/Examples/GIFPlot/Python/shadow/ branches/gsoc2008-maciekd/Examples/GIFPlot/Python/shadow/Makefile branches/gsoc2008-maciekd/Examples/GIFPlot/Python/shadow/README branches/gsoc2008-maciekd/Examples/GIFPlot/Python/shadow/cmap branches/gsoc2008-maciekd/Examples/GIFPlot/Python/shadow/runme.py branches/gsoc2008-maciekd/Examples/GIFPlot/Python/simple/ branches/gsoc2008-maciekd/Examples/GIFPlot/Python/simple/Makefile branches/gsoc2008-maciekd/Examples/GIFPlot/Python/simple/README branches/gsoc2008-maciekd/Examples/GIFPlot/Python/simple/runme.py branches/gsoc2008-maciekd/Examples/GIFPlot/Python/simple/simple.i branches/gsoc2008-maciekd/Examples/GIFPlot/README branches/gsoc2008-maciekd/Examples/GIFPlot/Ruby/ branches/gsoc2008-maciekd/Examples/GIFPlot/Ruby/check.list branches/gsoc2008-maciekd/Examples/GIFPlot/Ruby/full/ branches/gsoc2008-maciekd/Examples/GIFPlot/Ruby/full/Makefile branches/gsoc2008-maciekd/Examples/GIFPlot/Ruby/full/README branches/gsoc2008-maciekd/Examples/GIFPlot/Ruby/full/cmap branches/gsoc2008-maciekd/Examples/GIFPlot/Ruby/full/gifplot.i branches/gsoc2008-maciekd/Examples/GIFPlot/Ruby/full/runme.rb branches/gsoc2008-maciekd/Examples/GIFPlot/Ruby/shadow/ branches/gsoc2008-maciekd/Examples/GIFPlot/Ruby/shadow/Makefile branches/gsoc2008-maciekd/Examples/GIFPlot/Ruby/shadow/README branches/gsoc2008-maciekd/Examples/GIFPlot/Ruby/shadow/cmap branches/gsoc2008-maciekd/Examples/GIFPlot/Ruby/shadow/runme.rb branches/gsoc2008-maciekd/Examples/GIFPlot/Ruby/simple/ branches/gsoc2008-maciekd/Examples/GIFPlot/Ruby/simple/Makefile branches/gsoc2008-maciekd/Examples/GIFPlot/Ruby/simple/README branches/gsoc2008-maciekd/Examples/GIFPlot/Ruby/simple/runme.rb branches/gsoc2008-maciekd/Examples/GIFPlot/Ruby/simple/simple.i branches/gsoc2008-maciekd/Examples/GIFPlot/Tcl/ branches/gsoc2008-maciekd/Examples/GIFPlot/Tcl/check.list branches/gsoc2008-maciekd/Examples/GIFPlot/Tcl/full/ branches/gsoc2008-maciekd/Examples/GIFPlot/Tcl/full/Makefile branches/gsoc2008-maciekd/Examples/GIFPlot/Tcl/full/README branches/gsoc2008-maciekd/Examples/GIFPlot/Tcl/full/cmap branches/gsoc2008-maciekd/Examples/GIFPlot/Tcl/full/gifplot.i branches/gsoc2008-maciekd/Examples/GIFPlot/Tcl/full/runme.tcl branches/gsoc2008-maciekd/Examples/GIFPlot/Tcl/mandel/ branches/gsoc2008-maciekd/Examples/GIFPlot/Tcl/mandel/Makefile branches/gsoc2008-maciekd/Examples/GIFPlot/Tcl/mandel/README branches/gsoc2008-maciekd/Examples/GIFPlot/Tcl/mandel/cmap branches/gsoc2008-maciekd/Examples/GIFPlot/Tcl/mandel/display.tcl branches/gsoc2008-maciekd/Examples/GIFPlot/Tcl/mandel/mandel.i branches/gsoc2008-maciekd/Examples/GIFPlot/Tcl/mandel/mandel.tcl branches/gsoc2008-maciekd/Examples/GIFPlot/Tcl/simple/ branches/gsoc2008-maciekd/Examples/GIFPlot/Tcl/simple/Makefile branches/gsoc2008-maciekd/Examples/GIFPlot/Tcl/simple/README branches/gsoc2008-maciekd/Examples/GIFPlot/Tcl/simple/runme.tcl branches/gsoc2008-maciekd/Examples/GIFPlot/Tcl/simple/simple.i branches/gsoc2008-maciekd/Examples/chicken/zlib/ branches/gsoc2008-maciekd/Examples/chicken/zlib/Makefile branches/gsoc2008-maciekd/Examples/chicken/zlib/README.html branches/gsoc2008-maciekd/Examples/chicken/zlib/example.i branches/gsoc2008-maciekd/Examples/chicken/zlib/test-zlib.scm branches/gsoc2008-maciekd/Examples/xml/example_gif.i branches/gsoc2008-maciekd/Lib/tcl/mactclinit.c Removed Paths: ------------- branches/gsoc2008-maciekd/COPYRIGHT branches/gsoc2008-maciekd/LICENSE-GPL branches/gsoc2008-maciekd/LICENSE-UNIVERSITIES Modified: branches/gsoc2008-maciekd/ANNOUNCE =================================================================== --- branches/gsoc2008-maciekd/ANNOUNCE 2012-05-02 18:10:45 UTC (rev 13031) +++ branches/gsoc2008-maciekd/ANNOUNCE 2012-05-06 00:49:56 UTC (rev 13032) @@ -1,10 +1,10 @@ -*** ANNOUNCE: SWIG 2.0.0 (in progress) *** +*** ANNOUNCE: SWIG 1.3.40 (in progress) *** http://www.swig.org -We're pleased to announce SWIG-2.0.0, the latest installment in the -SWIG development effort. SWIG-2.0.0 includes a number of bug fixes +We're pleased to announce SWIG-1.3.40, the latest installment in the +SWIG development effort. SWIG-1.3.40 includes a number of bug fixes and enhancements. What is SWIG? @@ -24,11 +24,11 @@ ------------- The release is available for download on Sourceforge at - http://prdownloads.sourceforge.net/swig/swig-2.0.0.tar.gz + http://prdownloads.sourceforge.net/swig/swig-1.3.40.tar.gz A Windows version is also available at - http://prdownloads.sourceforge.net/swig/swigwin-2.0.0.zip + http://prdownloads.sourceforge.net/swig/swigwin-1.3.40.zip Please report problems with this release to the swig-dev mailing list, details at http://www.swig.org/mail.html. Deleted: branches/gsoc2008-maciekd/COPYRIGHT =================================================================== --- branches/gsoc2008-maciekd/COPYRIGHT 2012-05-02 18:10:45 UTC (rev 13031) +++ branches/gsoc2008-maciekd/COPYRIGHT 2012-05-06 00:49:56 UTC (rev 13032) @@ -1,63 +0,0 @@ -SWIG Copyright and Authors --------------------------- - -Copyright (c) 1995-2010 The SWIG Developers -Copyright (c) 2005-2006 Arizona Board of Regents (University of Arizona). -Copyright (c) 1998-2005 University of Chicago. -Copyright (c) 1995-1998 The University of Utah and the Regents of the University of California - -Portions also copyrighted by: - Network Applied Communication Laboratory, Inc - Information-technology Promotion Agency, Japan - -Active SWIG Developers: - William Fulton (ws...@fu...) (SWIG core, Java, C#, Windows, Cygwin) - Olly Betts (ol...@su...) (PHP) - Joseph Wang (joe...@gm...) (R) - Xavier Delacour (xav...@gm...) (Octave) - -Past SWIG developers and major contributors include: - Dave Beazley (dav...@da...) (SWIG core, Python, Tcl, Perl) - Henning Thielemann (sw...@he...) (Modula3) - Matthias Köppe (mk...@ma...) (Guile, MzScheme) - Luigi Ballabio (lui...@fa...) (STL wrapping) - Mikel Bancroft (mi...@fr...) (Allegro CL) - Surendra Singhi (efu...@ne...) (CLISP, CFFI) - Marcelo Matus (mm...@ac...) (SWIG core, Python, UTL[python,perl,tcl,ruby]) - Art Yerkes (ay...@sp...) (Ocaml) - Lyle Johnson (ly...@us...) (Ruby) - Charlie Savage (cf...@in...) (Ruby) - Thien-Thi Nguyen (tt...@gl...) (build/test/misc) - Richard Palmer (ri...@ma...) (PHP) - Sam Liddicott - Anonova Ltd (sa...@li...) (PHP) - Tim Hockin - Sun Microsystems (th...@su...) (PHP) - Kevin Ruland (PHP) - Shibukawa Yoshiki (Japanese Translation) - Jason Stewart (ja...@op...) (Perl5) - Loic Dachary (Perl5) - David Fletcher (Perl5) - Gary Holt (Perl5) - Masaki Fukushima (Ruby) - Scott Michel (sc...@cs...) (Java directors) - Tiger Feng (son...@cs...) (SWIG core) - Mark Rose (mr...@st...) (Directors) - Jonah Beckford (bec...@us...) (CHICKEN) - Ahmon Dancy (da...@fr...) (Allegro CL) - Dirk Gerrits (Allegro CL) - Neil Cawse (C#) - Harco de Hilster (Java) - Alexey Dyachenko (dya...@fr...) (Tcl) - Bob Techentin (Tcl) - Martin Froehlich <MartinFroehlich@ACM.org> (Guile) - Marcio Luis Teixeira <ma...@ho...> (Guile) - Duncan Temple Lang (R) - Miklos Vajna <vm...@fr...> (PHP directors) - Mark Gossage (ma...@go...) (Lua) - Gonzalo Garramuno (gg...@ad...) (Ruby, Ruby's UTL) - John Lenz (Guile, MzScheme updates, Chicken module, runtime system) - -Past contributors include: - James Michael DuPont, Clark McGrew, Dustin Mitchell, Ian Cooke, Catalin Dumitrescu, Baran - Kovuk, Oleg Tolmatcev, Tal Shalif, Lluis Padro, Chris Seatory, Igor Bely, Robin Dunn - (See CHANGES and CHANGES.current for a more complete list). - Modified: branches/gsoc2008-maciekd/Doc/Manual/Sections.html =================================================================== --- branches/gsoc2008-maciekd/Doc/Manual/Sections.html 2012-05-02 18:10:45 UTC (rev 13031) +++ branches/gsoc2008-maciekd/Doc/Manual/Sections.html 2012-05-06 00:49:56 UTC (rev 13032) @@ -6,7 +6,7 @@ <body bgcolor="#ffffff"> <H1><a name="Sections"></a>SWIG-1.3 Development Documentation</H1> -Last update : SWIG-2.0.0 (in progress) +Last update : SWIG-1.3.40 (in progress) <H2>Sections</H2> Added: branches/gsoc2008-maciekd/Examples/GIFPlot/C/Makefile =================================================================== --- branches/gsoc2008-maciekd/Examples/GIFPlot/C/Makefile (rev 0) +++ branches/gsoc2008-maciekd/Examples/GIFPlot/C/Makefile 2012-05-06 00:49:56 UTC (rev 13032) @@ -0,0 +1,17 @@ +TOP = ../.. +SWIG = $(TOP)/../preinst-swig +SWIGOPT = -I../Include +SRCS = +TARGET = gifplot +INTERFACE = gifplot.i +LIBS = -L.. -lgifplot +INCLUDES = -I../Include + +all:: + $(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' LIBS='$(LIBS)' \ + SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' c + +clean: + rm -f *.o *.out *.so *.a *.dll *.dylib *.exe *_wrap* *_proxy* *~ runme + +check: all Added: branches/gsoc2008-maciekd/Examples/GIFPlot/C/gifplot.i =================================================================== --- branches/gsoc2008-maciekd/Examples/GIFPlot/C/gifplot.i (rev 0) +++ branches/gsoc2008-maciekd/Examples/GIFPlot/C/gifplot.i 2012-05-06 00:49:56 UTC (rev 13032) @@ -0,0 +1,15 @@ +/* Oh what the heck, let's just grab the whole darn header file + and see what happens. */ + +%module gifplot +%{ + +/* Note: You still need this part because the %include directive + merely causes SWIG to interpret the contents of a file. It doesn't + include the right include headers for the resulting C code */ + +#include "../Include/gifplot.h" + +%} + +%include gifplot.h Added: branches/gsoc2008-maciekd/Examples/GIFPlot/Chicken/check.list =================================================================== --- branches/gsoc2008-maciekd/Examples/GIFPlot/Chicken/check.list (rev 0) +++ branches/gsoc2008-maciekd/Examples/GIFPlot/Chicken/check.list 2012-05-06 00:49:56 UTC (rev 13032) @@ -0,0 +1,3 @@ +# see top-level Makefile.in +full +simple Added: branches/gsoc2008-maciekd/Examples/GIFPlot/Chicken/full/Makefile =================================================================== --- branches/gsoc2008-maciekd/Examples/GIFPlot/Chicken/full/Makefile (rev 0) +++ branches/gsoc2008-maciekd/Examples/GIFPlot/Chicken/full/Makefile 2012-05-06 00:49:56 UTC (rev 13032) @@ -0,0 +1,28 @@ +TOP = ../../.. +SWIG = $(TOP)/../preinst-swig +INTERFACE = gifplot.i +SRCS = +CXXSRCS = +TARGET = gifplot +INCLUDE = -I. -I../../Include +SWIGOPT = -I../../Include +CFLAGS = +VARIANT = +LIBS = -L../.. -lgifplot -lm + +# comment the following two lines to build a dynamic so file +CHICKEN_MAIN = test-gifplot.scm +VARIANT = _static + +all:: $(TARGET) + +$(TARGET): $(INTERFACE) $(SRCS) + $(MAKE) -f $(TOP)/Makefile \ + SRCS='$(SRCS)' CXXSRCS='$(CXXSRCS)' CHICKEN_MAIN='$(CHICKEN_MAIN)' \ + INCLUDE='$(INCLUDE)' SWIGOPT='$(SWIGOPT)' LIBS='$(LIBS)' TARGET='$(TARGET)' \ + SWIG='$(SWIG)' INTERFACE='$(INTERFACE)' CHICKENOPTS='$(CHICKENOPTS)' chicken$(VARIANT) + +clean:: + $(MAKE) -f $(TOP)/Makefile chicken_clean + rm -f gifplot.scm image.gif + rm -f $(TARGET) Added: branches/gsoc2008-maciekd/Examples/GIFPlot/Chicken/full/README =================================================================== --- branches/gsoc2008-maciekd/Examples/GIFPlot/Chicken/full/README (rev 0) +++ branches/gsoc2008-maciekd/Examples/GIFPlot/Chicken/full/README 2012-05-06 00:49:56 UTC (rev 13032) @@ -0,0 +1,6 @@ +This example runs the entire gifplot.h header file through SWIG without +any changes. The Scheme program 'test-gifplot.scm' does something a +little more interesting. You'll have to go look at the header file to +get a complete listing of the functions. + +`make' will build a static binary. Run ./gifplot to test it. Added: branches/gsoc2008-maciekd/Examples/GIFPlot/Chicken/full/cmap =================================================================== --- branches/gsoc2008-maciekd/Examples/GIFPlot/Chicken/full/cmap (rev 0) +++ branches/gsoc2008-maciekd/Examples/GIFPlot/Chicken/full/cmap 2012-05-06 00:49:56 UTC (rev 13032) @@ -0,0 +1,6 @@ + |
From: <wsf...@us...> - 2012-05-06 01:17:21
|
Revision: 13034 http://swig.svn.sourceforge.net/swig/?rev=13034&view=rev Author: wsfulton Date: 2012-05-06 01:17:11 +0000 (Sun, 06 May 2012) Log Message: ----------- Revert rev 10606 "Merged revisions 10498-10499,10503-10504,10506,10508,10511,10515-10516,10518-10519,10527,10530-10531,10536-10537,10539-10552,10558-10568,10574-10580,10582,10584,10588-10589,10594 via svnmerge from " This reverts commit 379b9bcdf44dcd87c5eca7eb9a773aea793e7caf. From: William S Fulton <ws...@fu...> Revision Links: -------------- http://swig.svn.sourceforge.net/swig/?rev=10606&view=rev Modified Paths: -------------- branches/gsoc2008-maciekd/ANNOUNCE branches/gsoc2008-maciekd/CHANGES branches/gsoc2008-maciekd/CHANGES.current branches/gsoc2008-maciekd/Doc/Manual/Contents.html branches/gsoc2008-maciekd/Doc/Manual/Java.html branches/gsoc2008-maciekd/Doc/Manual/SWIGPlus.html branches/gsoc2008-maciekd/Doc/Manual/Sections.html branches/gsoc2008-maciekd/Doc/Manual/Typemaps.html branches/gsoc2008-maciekd/Doc/Manual/Warnings.html branches/gsoc2008-maciekd/Examples/Makefile.in branches/gsoc2008-maciekd/Examples/guile/multimap/example.i branches/gsoc2008-maciekd/Examples/guile/multivalue/example.i branches/gsoc2008-maciekd/Examples/lua/arrays/example.c branches/gsoc2008-maciekd/Examples/lua/embed2/embed2.c branches/gsoc2008-maciekd/Examples/lua/embed3/embed3.cpp branches/gsoc2008-maciekd/Examples/lua/owner/example.cxx branches/gsoc2008-maciekd/Examples/perl5/import/base.h branches/gsoc2008-maciekd/Examples/perl5/multiple_inheritance/example.h branches/gsoc2008-maciekd/Examples/ruby/class/example.dsp branches/gsoc2008-maciekd/Examples/ruby/free_function/example.cxx branches/gsoc2008-maciekd/Examples/ruby/free_function/example.dsp branches/gsoc2008-maciekd/Examples/ruby/import/bar.dsp branches/gsoc2008-maciekd/Examples/ruby/import/base.dsp branches/gsoc2008-maciekd/Examples/ruby/import/foo.dsp branches/gsoc2008-maciekd/Examples/ruby/import/spam.dsp branches/gsoc2008-maciekd/Examples/ruby/mark_function/example.dsp branches/gsoc2008-maciekd/Examples/tcl/import/base.h branches/gsoc2008-maciekd/Examples/test-suite/apply_signed_char.i branches/gsoc2008-maciekd/Examples/test-suite/bools.i branches/gsoc2008-maciekd/Examples/test-suite/char_strings.i branches/gsoc2008-maciekd/Examples/test-suite/chicken/Makefile.in branches/gsoc2008-maciekd/Examples/test-suite/common.mk branches/gsoc2008-maciekd/Examples/test-suite/constant_pointers.i branches/gsoc2008-maciekd/Examples/test-suite/cpp_basic.i branches/gsoc2008-maciekd/Examples/test-suite/csharp/Makefile.in branches/gsoc2008-maciekd/Examples/test-suite/csharp/char_strings_runme.cs branches/gsoc2008-maciekd/Examples/test-suite/enum_thorough.i branches/gsoc2008-maciekd/Examples/test-suite/fvirtual.i branches/gsoc2008-maciekd/Examples/test-suite/guilescm/Makefile.in branches/gsoc2008-maciekd/Examples/test-suite/java/Makefile.in branches/gsoc2008-maciekd/Examples/test-suite/java/char_strings_runme.java branches/gsoc2008-maciekd/Examples/test-suite/java_typemaps_proxy.i branches/gsoc2008-maciekd/Examples/test-suite/li_std_string.i branches/gsoc2008-maciekd/Examples/test-suite/minherit.i branches/gsoc2008-maciekd/Examples/test-suite/octave/fvirtual_runme.m branches/gsoc2008-maciekd/Examples/test-suite/octave/li_std_string_runme.m branches/gsoc2008-maciekd/Examples/test-suite/perl5/li_std_string_runme.pl branches/gsoc2008-maciekd/Examples/test-suite/perl5/run-perl-test.pl branches/gsoc2008-maciekd/Examples/test-suite/php4/Makefile.in branches/gsoc2008-maciekd/Examples/test-suite/python/fvirtual_runme.py branches/gsoc2008-maciekd/Examples/test-suite/python/li_std_string_runme.py branches/gsoc2008-maciekd/Examples/test-suite/r/Makefile.in branches/gsoc2008-maciekd/Examples/test-suite/ruby/li_std_string_runme.rb branches/gsoc2008-maciekd/Examples/test-suite/samename.i branches/gsoc2008-maciekd/Examples/test-suite/template_int_const.i branches/gsoc2008-maciekd/Examples/test-suite/template_typedef_rec.i branches/gsoc2008-maciekd/Examples/test-suite/typemap_namespace.i branches/gsoc2008-maciekd/Lib/chicken/chickenkw.swg branches/gsoc2008-maciekd/Lib/csharp/csharphead.swg branches/gsoc2008-maciekd/Lib/csharp/csharpkw.swg branches/gsoc2008-maciekd/Lib/java/director.swg branches/gsoc2008-maciekd/Lib/java/javakw.swg branches/gsoc2008-maciekd/Lib/java/various.i branches/gsoc2008-maciekd/Lib/lua/luatypemaps.swg branches/gsoc2008-maciekd/Lib/lua/typemaps.i branches/gsoc2008-maciekd/Lib/ocaml/ocamlkw.swg branches/gsoc2008-maciekd/Lib/perl5/perlkw.swg branches/gsoc2008-maciekd/Lib/php4/php4kw.swg branches/gsoc2008-maciekd/Lib/pike/pikekw.swg branches/gsoc2008-maciekd/Lib/python/pycontainer.swg branches/gsoc2008-maciekd/Lib/python/pyiterators.swg branches/gsoc2008-maciekd/Lib/python/pythonkw.swg branches/gsoc2008-maciekd/Lib/r/r.swg branches/gsoc2008-maciekd/Lib/ruby/rubycontainer.swg branches/gsoc2008-maciekd/Lib/ruby/rubykw.swg branches/gsoc2008-maciekd/Lib/swiglabels.swg branches/gsoc2008-maciekd/Lib/typemaps/primtypes.swg branches/gsoc2008-maciekd/README branches/gsoc2008-maciekd/Source/CParse/cscanner.c branches/gsoc2008-maciekd/Source/CParse/parser.y branches/gsoc2008-maciekd/Source/CParse/templ.c branches/gsoc2008-maciekd/Source/DOH/hash.c branches/gsoc2008-maciekd/Source/Modules/allegrocl.cxx branches/gsoc2008-maciekd/Source/Modules/chicken.cxx branches/gsoc2008-maciekd/Source/Modules/csharp.cxx branches/gsoc2008-maciekd/Source/Modules/guile.cxx branches/gsoc2008-maciekd/Source/Modules/java.cxx branches/gsoc2008-maciekd/Source/Modules/lang.cxx branches/gsoc2008-maciekd/Source/Modules/lua.cxx branches/gsoc2008-maciekd/Source/Modules/main.cxx branches/gsoc2008-maciekd/Source/Modules/modula3.cxx branches/gsoc2008-maciekd/Source/Modules/php4.cxx branches/gsoc2008-maciekd/Source/Modules/python.cxx branches/gsoc2008-maciekd/Source/Modules/r.cxx branches/gsoc2008-maciekd/Source/Modules/ruby.cxx branches/gsoc2008-maciekd/Source/Preprocessor/cpp.c branches/gsoc2008-maciekd/Source/Swig/cwrap.c branches/gsoc2008-maciekd/Source/Swig/include.c branches/gsoc2008-maciekd/Source/Swig/misc.c branches/gsoc2008-maciekd/Source/Swig/naming.c branches/gsoc2008-maciekd/Source/Swig/scanner.c branches/gsoc2008-maciekd/Source/Swig/typeobj.c branches/gsoc2008-maciekd/Source/Swig/typesys.c branches/gsoc2008-maciekd/TODO branches/gsoc2008-maciekd/Tools/WAD/Python/type.c branches/gsoc2008-maciekd/Tools/mkrelease.py branches/gsoc2008-maciekd/configure.in Removed Paths: ------------- branches/gsoc2008-maciekd/Examples/test-suite/keyword_rename.i branches/gsoc2008-maciekd/Examples/test-suite/lua/li_typemaps_runme.lua branches/gsoc2008-maciekd/Examples/test-suite/python/keyword_rename_runme.py branches/gsoc2008-maciekd/Lib/r/rkw.swg Modified: branches/gsoc2008-maciekd/ANNOUNCE =================================================================== --- branches/gsoc2008-maciekd/ANNOUNCE 2012-05-06 01:13:16 UTC (rev 13033) +++ branches/gsoc2008-maciekd/ANNOUNCE 2012-05-06 01:17:11 UTC (rev 13034) @@ -1,10 +1,10 @@ -*** ANNOUNCE: SWIG 1.3.36 (24 June 2008) *** +*** ANNOUNCE: SWIG 1.3.35 (7 April 2008) *** http://www.swig.org -We're pleased to announce SWIG-1.3.36, the latest installment in the -SWIG development effort. SWIG-1.3.36 includes a number of bug fixes +We're pleased to announce SWIG-1.3.35, the latest installment in the +SWIG development effort. SWIG-1.3.35 includes a number of bug fixes and large number of enhancements throughout. What is SWIG? @@ -24,11 +24,11 @@ ------------- The release is available for download on Sourceforge at - http://prdownloads.sourceforge.net/swig/swig-1.3.36.tar.gz + http://prdownloads.sourceforge.net/swig/swig-1.3.35.tar.gz A Windows version is also available at - http://prdownloads.sourceforge.net/swig/swigwin-1.3.36.zip + http://prdownloads.sourceforge.net/swig/swigwin-1.3.35.zip Release numbers --------------- Modified: branches/gsoc2008-maciekd/CHANGES =================================================================== --- branches/gsoc2008-maciekd/CHANGES 2012-05-06 01:13:16 UTC (rev 13033) +++ branches/gsoc2008-maciekd/CHANGES 2012-05-06 01:17:11 UTC (rev 13034) @@ -2,162 +2,6 @@ See CHANGES.current for current version. -Version 1.3.36 (24 June 2008) -============================= - -06/24/2008: wsfulton - Remove deprecated -c commandline option (runtime library generation). - -06/24/2008: olly - [PHP] Fix assertion failure when handling %typemap(in,numinputs=0) - (testcase ignore_parameter). - -06/24/2008: olly - [PHP] Fix segfault when wrapping a non-class function marked with - %newobject (testcase char_strings). - -06/22/2008: wsfulton - [Java] Add a way to use AttachCurrentThreadAsDaemon instead of AttachCurrentThread - in director code. Define the SWIG_JAVA_ATTACH_CURRENT_THREAD_AS_DAEMON macro, see - Lib/java/director.swg. - -06/21/2008: wsfulton - [Ruby] Fix crashing in the STL wrappers (reject! and delete_if methods) - -06/19/2008: wsfulton - [Java, C#] C# and Java keywords will be renamed instead of just issuing a warning - and then generating uncompileable code. Warning 314 gives the new name when a - keyword is found. - -06/19/2008: wsfulton - [R] Keyword handling added. R Keywords will be renamed as necessary. - Warning 314 gives the new name when a keyword is found. - -06/17/2008: mgossage - [Lua] Added missing support for bool& and bool*. Added runtest for li_typemaps testcase. - (Bug #1938142) - -06/07/2008: bhy - Added test case keyword_rename, then made the keyword renaming works properly - by fixing Swig_name_make() for a incomplete condition checking. - -06/02/2008: wsfulton - [Java, C#] Fix enum wrappers when using -noproxy. - -05/30/2008: bhy - Added std::wstring into Lib/typemaps/primtypes.swg, since it is also a primitive - type in SWIG - fixed SF #1976978. - -05/29/2008: wsfulton - [Java, C#] Fix variable wrappers when using -noproxy. - -05/29/2008: bhy - [Python] Fixed a typo of %#ifdef in Lib/python/pycontainer.swg, which is related - to -extranative SWIG option - SF #1971977. - -05/20/2008: wsfulton - New partialcheck makefile targets for partial testing of the test-suite. These - just invoke SWIG, ie no compilation and no runtime testing. It can be faster - when developing by just doing a directory diff of the files SWIG generates - against those from a previous run. Example usage from the top level directory: - - make partialcheck-test-suite - make partialcheck-java-test-suite - - This change also encompasses more flexibility in running the test-suite, eg - it is possible to prefix the command line which runs any target language test - with a tool. See the RUNTOOL, COMPILETOOL and SWIGTOOL targets in the common.mk - file and makefiles in the test-suite directory. For example it is possible to - run the runtime tests through valgrind using: - - make check RUNTOOL="valgrind --leak-check=full" - - or invoke SWIG under valgrind using: - - make check SWIGTOOL="valgrind --tool=memcheck" - -05/19/2008: drjoe - [R] Fixed define that was breaking pre-2.7. Checked in - patch from Soren Sonnenburg that creates strings in - version independent way - -05/15/2008: wsfulton - [Java] Fix variable name clash in directors - SF #1963316 reported by Tristan. - -05/14/2008: wsfulton - Add an optimisation for functions that return objects by value, reducing - the number of copies of the object that are made. Implemented using an - optional attribute in the "out" typemap called "optimal". Details in - Typemaps.html. - -05/11/2008: olly - [PHP] Check for %feature("notabstract") when generating PHP5 class - wrapper. - -05/11/2008: wsfulton - Fix SF #1943608 - $self substitution in %contract, patch submitted by - Toon Verstraelen. - -05/09/2008: olly - [PHP] Fix char * typemaps to work when applied to signed char * and - unsigned char * (uncovered by testcase apply_strings). - -05/09/2008: wsfulton - Fix wrapping of char * member variables when using allprotected mode. - Bug reported by Warren Wang. - -05/09/2008: olly - [PHP] Fix bad PHP code generated when wrapping an enum in a - namespace (uncovered by testcase arrays_scope). - -05/09/2008: olly - [PHP] SWIG now runs the PHP testsuite using PHP5, not PHP4. PHP4 - is essentially obsolete now, so we care much more about solid PHP5 - support. - -05/07/2008: wsfulton - STL fixes when using %import rather than %include and the Solaris Workshop - compiler and the Roguewave STL. - -05/07/2008: wsfulton - Fix wrapping of overloaded protected methods when using allprotected mode. - Bug reported by Warren Wang. - -05/03/2008: wsfulton - Commit patch #1956607 to add -MT support from Richard Boulton. - This patch mirrors the gcc -MT option which allows one to change the default - Makefile target being generated when generating makefiles with the -M family - of options. For example: - - $ swig -java -MM -MT overiddenname -c++ example.i - overiddenname: \ - example.i \ - example.h - -04/30/2008: mgossage - [Lua] Removed generation of _wrap_delete_XXXXX (wrappered destructor) - which was unused and causing warning with g++ -Wall. - Removed other unused warning in typemaps.i and other places. - Added Examples/lua/embed3, and run tests a few test cases. - -04/24/2008: olly - [Python] Fix generated code for IBM's C++ compiler on AIX (patch - from Goeran Uddeborg in SF#1928048). - -04/24/2008: olly - Rename BSIZE in Examples/test-suite/arrays_scope.i to BBSIZE to - avoid a clash with BSIZE defined by headers on AIX with Perl - (reported in SF#1928048). - -04/20/2008: wsfulton - Add the ability to wrap all protected members when using directors. - Previously only the virtual methods were available to the target language. - Now all protected members, (static and non-static variables, non-virtual methods - and static methods) are wrapped when using the allprotected mode. The allprotected - mode is turned on in the module declaration: - - %module(directors="1", allprotected="1") modulename - Version 1.3.35 (7 April 2008) ============================= @@ -12279,8 +12123,7 @@ with helper functions even if they aren't used. To fix this, a new fragment directive is available. For example: - (corrected typo in line below - 06/26/2008) - %fragment("type_header","header") %{ + %fragment("type_helper","header") %{ void some_helper_function() { ... } Modified: branches/gsoc2008-maciekd/CHANGES.current =================================================================== --- branches/gsoc2008-maciekd/CHANGES.current 2012-05-06 01:13:16 UTC (rev 13033) +++ branches/gsoc2008-maciekd/CHANGES.current 2012-05-06 01:17:11 UTC (rev 13034) @@ -1,3 +1,106 @@ Version 1.3.36 (in progress) ============================= +05/20/2008: wsfulton + New partialcheck makefile targets for partial testing of the test-suite. These + just invoke SWIG, ie no compilation and no runtime testing. It can be faster + when developing by just doing a directory diff of the files SWIG generates + against those from a previous run. Example usage from the top level directory: + + make partialcheck-test-suite + make partialcheck-java-test-suite + + This change also encompasses more flexibility in running the test-suite, eg + it is possible to prefix the command line which runs any target language test + with a tool. See the RUNTOOL, COMPILETOOL and SWIGTOOL targets in the common.mk + file and makefiles in the test-suite directory. For example it is possible to + run the runtime tests through valgrind using: + + make check RUNTOOL="valgrind --leak-check=full" + + or invoke SWIG under valgrind using: + + make check SWIGTOOL="valgrind --tool=memcheck" + +05/19/2008: drjoe + [R] Fixed define that was breaking pre-2.7. Checked in + patch from Soren Sonnenburg that creates strings in + version independent way + +05/15/2008: wsfulton + [Java] Fix variable name clash in directors - SF #1963316 reported by Tristan. + +05/14/2008: wsfulton + Add an optimisation for functions that return objects by value, reducing + the number of copies of the object that are made. Implemented using an + optional attribute in the "out" typemap called "optimal". Details in + Typemaps.html. + +05/11/2008: olly + [PHP] Check for %feature("notabstract") when generating PHP5 class + wrapper. + +05/11/2008: wsfulton + Fix SF #1943608 - $self substitution in %contract, patch submitted by + Toon Verstraelen. + +05/09/2008: olly + [PHP] Fix char * typemaps to work when applied to signed char * and + unsigned char * (uncovered by testcase apply_strings). + +05/09/2008: wsfulton + Fix wrapping of char * member variables when using allprotected mode. + Bug reported by Warren Wang. + +05/09/2008: olly + [PHP] Fix bad PHP code generated when wrapping an enum in a + namespace (uncovered by testcase arrays_scope). + +05/09/2008: olly + [PHP] SWIG now runs the PHP testsuite using PHP5, not PHP4. PHP4 + is essentially obsolete now, so we care much more about solid PHP5 + support. + +05/07/2008: wsfulton + STL fixes when using %import rather than %include and the Solaris Workshop + compiler and the Roguewave STL. + +05/07/2008: wsfulton + Fix wrapping of overloaded protected methods when using allprotected mode. + Bug reported by Warren Wang. + +05/03/2008: wsfulton + Commit patch #1956607 to add -MT support from Richard Boulton. + This patch mirrors the gcc -MT option which allows one to change the default + Makefile target being generated when generating makefiles with the -M family + of options. For example: + + $ swig -java -MM -MT overiddenname -c++ example.i + overiddenname: \ + example.i \ + example.h + +04/30/2008: mgossage + [Lua] Removed generation of _wrap_delete_XXXXX (wrappered destructor) + which was unused and causing warning with g++ -Wall. + Removed other unused warning in typemaps.i and other places. + Added Examples/lua/embed3, and run tests a few test cases. + +04/24/2008: olly + [Python] Fix generated code for IBM's C++ compiler on AIX (patch + from Goeran Uddeborg in SF#1928048). + +04/24/2008: olly + Rename BSIZE in Examples/test-suite/arrays_scope.i to BBSIZE to + avoid a clash with BSIZE defined by headers on AIX with Perl + (reported in SF#1928048). + +04/20/2008: wsfulton + Add the ability to wrap all protected members when using directors. + Previously only the virtual methods were available to the target language. + Now all protected members, (static and non-static variables, non-virtual methods + and static methods) are wrapped when using the allprotected mode. The allprotected + mode is turned on in the module declaration: + + %module(directors="1", allprotected="1") modulename + Modified: branches/gsoc2008-maciekd/Doc/Manual/Contents.html =================================================================== --- branches/gsoc2008-maciekd/Doc/Manual/Contents.html 2012-05-06 01:13:16 UTC (rev 13033) +++ branches/gsoc2008-maciekd/Doc/Manual/Contents.html 2012-05-06 01:17:11 UTC (rev 13034) @@ -380,7 +380,7 @@ </ul> <li><a href="Typemaps.html#Typemaps_nn43">Typemaps for multiple languages</a> <li><a href="Typemaps.html#Typemaps_optimal">Optimal code generation when returning by value</a> -<li><a href="Typemaps.html#Typemaps_multi_argument_typemaps">Multi-argument typemaps</a> +<li><a href="Typemaps.html#Typemaps_nn42">Multi-argument typemaps</a> <li><a href="Typemaps.html#runtime_type_checker">The run-time type checker</a> <ul> <li><a href="Typemaps.html#Typemaps_nn45">Implementation</a> @@ -768,7 +768,6 @@ <li><a href="Java.html#java_directors_classes">Director classes</a> <li><a href="Java.html#java_directors_overhead">Overhead and code bloat</a> <li><a href="Java.html#java_directors_example">Simple directors example</a> -<li><a href="Java.html#java_directors_threading">Director threading issues</a> </ul> <li><a href="Java.html#java_allprotected">Accessing protected members</a> <li><a href="Java.html#common_customization">Common customization features</a> Modified: branches/gsoc2008-maciekd/Doc/Manual/Java.html =================================================================== --- branches/gsoc2008-maciekd/Doc/Manual/Java.html 2012-05-06 01:13:16 UTC (rev 13033) +++ branches/gsoc2008-maciekd/Doc/Manual/Java.html 2012-05-06 01:17:11 UTC (rev 13034) @@ -85,7 +85,6 @@ <li><a href="#java_directors_classes">Director classes</a> <li><a href="#java_directors_overhead">Overhead and code bloat</a> <li><a href="#java_directors_example">Simple directors example</a> -<li><a href="#java_directors_threading">Director threading issues</a> </ul> <li><a href="#java_allprotected">Accessing protected members</a> <li><a href="#common_customization">Common customization features</a> @@ -3451,26 +3450,6 @@ </pre> </div> -<H3><a name="java_directors_threading"></a>20.5.5 Director threading issues</H3> - - -<p> -Depending on your operating system and version of Java and how you are using threads, you might find the JVM hangs on exit. -There are a couple of solutions to try out. The preferred solution requires jdk-1.4 and later and uses <tt>AttachCurrentThreadAsDaemon</tt> instead of <tt>AttachCurrentThread</tt> whenever a call into the JVM is required. This can be enabled by defining the SWIG_JAVA_ATTACH_CURRENT_THREAD_AS_DAEMON macro when compiling the C++ wrapper code. For older JVMs define SWIG_JAVA_NO_DETACH_CURRENT_THREAD instead, to avoid the <tt>DetachCurrentThread</tt> call but this will result in a memory leak instead. For further details inspect the source code in the java/director.swg library file. -</p> - -<p> -Macros can be defined on the commandline when compiling your C++ code, or alternatively added to the C++ wrapper file as shown below: -</p> - -<div class="code"> -<pre> -%insert("runtime") %{ -#define SWIG_JAVA_NO_DETACH_CURRENT_THREAD -%} -</pre> -</div> - <H2><a name="java_allprotected"></a>20.6 Accessing protected members</H2> Modified: branches/gsoc2008-maciekd/Doc/Manual/SWIGPlus.html =================================================================== --- branches/gsoc2008-maciekd/Doc/Manual/SWIGPlus.html 2012-05-06 01:13:16 UTC (rev 13033) +++ branches/gsoc2008-maciekd/Doc/Manual/SWIGPlus.html 2012-05-06 01:17:11 UTC (rev 13034) @@ -1153,9 +1153,8 @@ <p> -This is great for reducing the size of the wrappers, but the caveat is it does not work for the statically typed languages, -such as C# and Java, -which don't have optional arguments in the language, +This is great for reducing the size of the wrappers, but the caveat is it does not work for the strongly typed languages +which don't have optional arguments in the language, such as C# and Java. Another restriction of this feature is that it cannot handle default arguments that are not public. The following example illustrates this: </p> Modified: branches/gsoc2008-maciekd/Doc/Manual/Sections.html =================================================================== --- branches/gsoc2008-maciekd/Doc/Manual/Sections.html 2012-05-06 01:13:16 UTC (rev 13033) +++ branches/gsoc2008-maciekd/Doc/Manual/Sections.html 2012-05-06 01:17:11 UTC (rev 13034) @@ -6,7 +6,7 @@ <body bgcolor="#ffffff"> <H1><a name="Sections"></a>SWIG-1.3 Development Documentation</H1> -Last update : SWIG-1.3.37 (in progress) +Last update : SWIG-1.3.36 (in progress) <H2>Sections</H2> Modified: branches/gsoc2008-maciekd/Doc/Manual/Typemaps.html =================================================================== --- branches/gsoc2008-maciekd/Doc/Manual/Typemaps.html 2012-05-06 01:13:16 UTC (rev 13033) +++ branches/gsoc2008-maciekd/Doc/Manual/Typemaps.html 2012-05-06 01:17:11 UTC (rev 13034) @@ -65,7 +65,7 @@ </ul> <li><a href="#Typemaps_nn43">Typemaps for multiple languages</a> <li><a href="#Typemaps_optimal">Optimal code generation when returning by value</a> -<li><a href="#Typemaps_multi_argument_typemaps">Multi-argument typemaps</a> +<li><a href="#Typemaps_nn42">Multi-argument typemaps</a> <li><a href="#runtime_type_checker">The run-time type checker</a> <ul> <li><a href="#Typemaps_nn45">Implementation</a> @@ -702,7 +702,7 @@ </p> <p><em>code</em> specifies the code used in the typemap. -Usually this is C/C++ code, but in the statically typed target languages, such as Java and C#, this can contain target language code for certain typemaps. +Usually this is C/C++ code, but in the strongly typed target languages, such as Java and C#, this can contain target language code for certain typemaps. It can take any one of the following forms: </p> @@ -1933,7 +1933,7 @@ <p> In addition, the "in" typemap allows the number of converted arguments to be -specified. The <tt>numinputs</tt> attributes facilitates this. For example: +specified. For example: </p> <div class="code"> @@ -1946,12 +1946,7 @@ </div> <p> -At this time, only zero or one arguments may be converted. -When <tt>numinputs</tt> is set to 0, the argument is effectively ignored and cannot be supplied from the target language. -The argument is still required when making the C/C++ call and the above typemap -shows the value used is instead obtained from a locally declared variable called <tt>temp</tt>. -Usually <tt>numinputs</tt> is not specified, whereupon the default value is 1, that is, there is a one to one mapping of the number of arguments when used from the target language to the C/C++ call. -<a href="#Typemaps_multi_argument_typemaps">Multi-argument typemaps</a> provide a similar concept where the number of arguments mapped from the target language to C/C++ can be changed for more tha multiple adjacent C/C++ arguments. +At this time, only zero or one arguments may be converted. </p> <p> @@ -2816,7 +2811,7 @@ However, it doesn't always get it right, for example when <tt>$1</tt> is within some commented out code. </p> -<H2><a name="Typemaps_multi_argument_typemaps"></a>10.9 Multi-argument typemaps</H2> +<H2><a name="Typemaps_nn42"></a>10.9 Multi-argument typemaps</H2> <p> Modified: branches/gsoc2008-maciekd/Doc/Manual/Warnings.html =================================================================== --- branches/gsoc2008-maciekd/Doc/Manual/Warnings.html 2012-05-06 01:13:16 UTC (rev 13033) +++ branches/gsoc2008-maciekd/Doc/Manual/Warnings.html 2012-05-06 01:17:11 UTC (rev 13034) @@ -373,7 +373,7 @@ <li>117. Deprecated <tt>%new</tt> directive. <li>118. Deprecated <tt>%typemap(except)</tt>. <li>119. Deprecated <tt>%typemap(ignore)</tt>. -<li>120. Deprecated command line option (-runtime, -noruntime). +<li>120. Deprecated command line option (-c). <li>121. Deprecated <tt>%name</tt> directive. </ul> Modified: branches/gsoc2008-maciekd/Examples/Makefile.in =================================================================== --- branches/gsoc2008-maciekd/Examples/Makefile.in 2012-05-06 01:13:16 UTC (rev 13033) +++ branches/gsoc2008-maciekd/Examples/Makefile.in 2012-05-06 01:17:11 UTC (rev 13034) @@ -40,9 +40,8 @@ SYSLIBS = $(LIBM) $(LIBC) $(LIBCRYPT) LIBPREFIX = -# RUNTOOL is for use with runtime tools, eg set it to valgrind +# RUNTOOL is for use as with runtime tools, eg set it to valgrind RUNTOOL = -# COMPILETOOL is a way to run the compiler under another tool, or more commonly just to stop the compiler executing COMPILETOOL= # X11 options @@ -95,6 +94,8 @@ # Extra Tcl specific dynamic linking options TCL_DLNK = @TCLDYNAMICLINKING@ +TCL_LDSHARED = @TCL_LDSHARED@ +TCL_CXXSHARED = @TCL_CXXSHARED@ TCL_SO = @TCL_SO@ # ----------------------------------------------------------- @@ -134,7 +135,7 @@ tcl: $(SRCS) $(SWIG) -tcl8 $(SWIGOPT) $(TCL_SWIGOPTS) $(INTERFACE) $(CC) -c $(CCSHARED) $(CFLAGS) $(SRCS) $(ISRCS) $(INCLUDES) $(TCL_INCLUDE) - $(LDSHARED) $(CFLAGS) $(OBJS) $(IOBJS) $(TCL_DLNK) $(LIBS) -o $(LIBPREFIX)$(TARGET)$(TCL_SO) + $(TCL_LDSHARED) $(CFLAGS) $(OBJS) $(IOBJS) $(TCL_DLNK) $(LIBS) -o $(LIBPREFIX)$(TARGET)$(TCL_SO) # ----------------------------------------------------------- # Build a Tcl7.5 dynamic loadable module for C++ @@ -143,7 +144,7 @@ tcl_cpp: $(SRCS) $(SWIG) -tcl8 -c++ $(SWIGOPT) $(TCL_SWIGOPTS) $(INTERFACE) $(CXX) -c $(CCSHARED) $(CFLAGS) $(SRCS) $(CXXSRCS) $(ICXXSRCS) $(INCLUDES) $(TCL_INCLUDE) - $(CXXSHARED) $(CFLAGS) $(OBJS) $(IOBJS) $(TCL_DLNK) $(LIBS) $(CPP_DLLIBS) -o $(LIBPREFIX)$(TARGET)$(TCL_SO) + $(TCL_CXXSHARED) $(CFLAGS) $(OBJS) $(IOBJS) $(TCL_DLNK) $(LIBS) $(CPP_DLLIBS) -o $(LIBPREFIX)$(TARGET)$(TCL_SO) # ----------------------------------------------------------------- # Cleaning the Tcl examples @@ -879,11 +880,11 @@ chicken: $(SWIG) -chicken $(SWIGOPT) $(INCLUDE) $(INTERFACE) - $(COMPILETOOL) $(CHICKEN_CSC) -s `echo $(INCLUDES) | sed 's/-I/-C -I/g'` $(CHICKEN_GENERATED_SCHEME) $(SRCS) $(ISRCS) -o $(TARGET)$(SO) + $(CHICKEN_CSC) -s `echo $(INCLUDES) | sed 's/-I/-C -I/g'` $(CHICKEN_GENERATED_SCHEME) $(SRCS) $(ISRCS) -o $(TARGET)$(SO) chicken_cpp: $(SWIG) -c++ -chicken $(SWIGOPT) $(INCLUDE) $(INTERFACE) - $(COMPILETOOL) $(CHICKEN_CSC) -s `echo $(INCLUDES) | sed 's/-I/-C -I/g'` $(CHICKEN_GENERATED_SCHEME) $(SRCS) $(ICXXSRCS) $(CXXSRCS) -o $(TARGET)$(SO) + $(CHICKEN_CSC) -s `echo $(INCLUDES) | sed 's/-I/-C -I/g'` $(CHICKEN_GENERATED_SCHEME) $(SRCS) $(ICXXSRCS) $(CXXSRCS) -o $(TARGET)$(SO) chicken_externalhdr: $(SWIG) -chicken -external-runtime $(TARGET) @@ -1077,11 +1078,11 @@ r: $(SRCS) $(SWIG) -r $(SWIGOPT) $(INTERFACE) - +( PKG_LIBS="$(SRCS)" PKG_CPPFLAGS="$(INCLUDES)" $(COMPILETOOL) $(R) CMD SHLIB -o $(LIBPREFIX)$(TARGET)$(SO) $(ISRCS) ) + +( PKG_LIBS="$(SRCS)" PKG_CPPFLAGS="$(INCLUDES)" $(R) CMD SHLIB -o $(LIBPREFIX)$(TARGET)$(SO) $(ISRCS) ) r_cpp: $(CXXSRCS) $(SWIG) -c++ -r $(SWIGOPT) -o $(RCXXSRCS) $(INTERFACE) - +( PKG_LIBS="$(CXXSRCS)" PKG_CPPFLAGS="$(INCLUDES)" $(COMPILETOOL) $(R) CMD SHLIB -o $(LIBPREFIX)$(TARGET)$(SO) $(RCXXSRCS) ) + +( PKG_LIBS="$(CXXSRCS)" PKG_CPPFLAGS="$(INCLUDES)" $(R) CMD SHLIB -o $(LIBPREFIX)$(TARGET)$(SO) $(RCXXSRCS) ) r_clean: rm -f *_wrap* *~ .~* Modified: branches/gsoc2008-maciekd/Examples/guile/multimap/example.i =================================================================== --- branches/gsoc2008-maciekd/Examples/guile/multimap/example.i 2012-05-06 01:13:16 UTC (rev 13033) +++ branches/gsoc2008-maciekd/Examples/guile/multimap/example.i 2012-05-06 01:17:11 UTC (rev 13034) @@ -20,7 +20,7 @@ SCM *v; if (!(SCM_NIMP($input) && SCM_VECTORP($input))) { SWIG_exception(SWIG_ValueError, "Expecting a vector"); - return 0; + return; } $1 = SCM_LENGTH($input); if ($1 == 0) { @@ -32,7 +32,7 @@ if (!(SCM_NIMP(v[i]) && SCM_STRINGP(v[i]))) { free($2); SWIG_exception(SWIG_ValueError, "Vector items must be strings"); - return 0; + return; } $2[i] = SCM_CHARS(v[i]); } Modified: branches/gsoc2008-maciekd/Examples/guile/multivalue/example.i =================================================================== --- branches/gsoc2008-maciekd/Examples/guile/multivalue/example.i 2012-05-06 01:13:16 UTC (rev 13033) +++ branches/gsoc2008-maciekd/Examples/guile/multivalue/example.i 2012-05-06 01:17:11 UTC (rev 13034) @@ -2,12 +2,6 @@ %module example; -%{ -void divide_l(int a, int b, int *quotient_p, int *remainder_p); -void divide_v(int a, int b, int *quotient_p, int *remainder_p); -void divide_mv(int a, int b, int *quotient_p, int *remainder_p); -%} - /* Multiple values as lists. By default, if more than one value is to be returned, a list of the values is created and returned; to switch back to this behavior, use: */ Modified: branches/gsoc2008-maciekd/Examples/lua/arrays/example.c =================================================================== --- branches/gsoc2008-maciekd/Examples/lua/arrays/example.c 2012-05-06 01:13:16 UTC (rev 13033) +++ branches/gsoc2008-maciekd/Examples/lua/arrays/example.c 2012-05-06 01:17:11 UTC (rev 13034) @@ -16,7 +16,7 @@ // ditto doubles int compare_double(const void * a, const void * b) { - return (int)( *(double*)a - *(double*)b ); + return ( *(double*)a - *(double*)b ); } void sort_double(double* arr, int len) Modified: branches/gsoc2008-maciekd/Examples/lua/embed2/embed2.c =================================================================== --- branches/gsoc2008-maciekd/Examples/lua/embed2/embed2.c 2012-05-06 01:13:16 UTC (rev 13033) +++ branches/gsoc2008-maciekd/Examples/lua/embed2/embed2.c 2012-05-06 01:17:11 UTC (rev 13034) @@ -11,17 +11,6 @@ */ -/* Deal with Microsoft's attempt at deprecating C standard runtime functions */ -#if !defined(SWIG_NO_CRT_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_CRT_SECURE_NO_DEPRECATE) -# define _CRT_SECURE_NO_DEPRECATE -#endif - -/* Deal with Microsoft's attempt at deprecating methods in the standard C++ library */ -#if !defined(SWIG_NO_SCL_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_SCL_SECURE_NO_DEPRECATE) -# define _SCL_SECURE_NO_DEPRECATE -#endif - - #include <stdlib.h> #include <stdio.h> @@ -119,7 +108,7 @@ endwhile: /* do the call */ - nres = (int)strlen(sig); /* number of expected results */ + nres = strlen(sig); /* number of expected results */ if (lua_pcall(L, narg, nres, 0) != 0) /* do the call */ { printf("error running function `%s': %s\n",func, lua_tostring(L, -1)); Modified: branches/gsoc2008-maciekd/Examples/lua/embed3/embed3.cpp =================================================================== --- branches/gsoc2008-maciekd/Examples/lua/embed3/embed3.cpp 2012-05-06 01:13:16 UTC (rev 13033) +++ branches/gsoc2008-maciekd/Examples/lua/embed3/embed3.cpp 2012-05-06 01:17:11 UTC (rev 13034) @@ -5,17 +5,6 @@ */ -/* Deal with Microsoft's attempt at deprecating C standard runtime functions */ -#if !defined(SWIG_NO_CRT_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_CRT_SECURE_NO_DEPRECATE) -# define _CRT_SECURE_NO_DEPRECATE -#endif - -/* Deal with Microsoft's attempt at deprecating methods in the standard C++ library */ -#if !defined(SWIG_NO_SCL_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_SCL_SECURE_NO_DEPRECATE) -# define _SCL_SECURE_NO_DEPRECATE -#endif - - #include <stdlib.h> #include <stdio.h> #include <string.h> @@ -81,6 +70,9 @@ int main(int argc, char* argv[]) { + int ok; + int res; + char str[80]; printf("[C++] Welcome to the simple embedded Lua example v3\n"); printf("[C++] We are in C++\n"); printf("[C++] opening a Lua state & loading the libraries\n"); Modified: branches/gsoc2008-maciekd/Examples/lua/owner/example.cxx =================================================================== --- branches/gsoc2008-maciekd/Examples/lua/owner/example.cxx 2012-05-06 01:13:16 UTC (rev 13033) +++ branches/gsoc2008-maciekd/Examples/lua/owner/example.cxx 2012-05-06 01:17:11 UTC (rev 13034) @@ -54,14 +54,14 @@ Shape* ShapeOwner::get(int idx) // this pointer is still owned by the class (assessor) { - if (idx < 0 || idx >= static_cast<int>(shapes.size())) + if (idx<0 || idx>=shapes.size()) return NULL; return shapes[idx]; } Shape* ShapeOwner::remove(int idx) // this method returns memory which must be deleted { - if (idx < 0 || idx >= static_cast<int>(shapes.size())) + if (idx<0 || idx>=shapes.size()) return NULL; Shape* ptr=shapes[idx]; shapes.erase(shapes.begin()+idx); Modified: branches/gsoc2008-maciekd/Examples/perl5/import/base.h =================================================================== --- branches/gsoc2008-maciekd/Examples/perl5/import/base.h 2012-05-06 01:13:16 UTC (rev 13033) +++ branches/gsoc2008-maciekd/Examples/perl5/import/base.h 2012-05-06 01:17:11 UTC (rev 13034) @@ -3,7 +3,7 @@ class Base { public: Base() { }; - virtual ~Base() { }; + ~Base() { }; virtual void A() { printf("I'm Base::A\n"); } Modified: branches/gsoc2008-maciekd/Examples/perl5/multiple_inheritance/example.h =================================================================== --- branches/gsoc2008-maciekd/Examples/perl5/multiple_inheritance/example.h 2012-05-06 01:13:16 UTC (rev 13033) +++ branches/gsoc2008-maciekd/Examples/perl5/multiple_inheritance/example.h 2012-05-06 01:17:11 UTC (rev 13034) @@ -7,25 +7,26 @@ class Bar { public: - virtual void bar () { - cout << "bar" << endl; - } - virtual ~Bar() {} + virtual void bar () + { + cout << "bar" << endl; + } }; class Foo { public: - virtual void foo () { - cout << "foo" << endl; - } - virtual ~Foo() {} + virtual void foo () + { + cout << "foo" << endl; + } }; class Foo_Bar : public Foo, public Bar { public: - virtual void fooBar () { - cout << "foobar" << endl; - } + virtual void fooBar () + { + cout << "foobar" << endl; + } }; Modified: branches/gsoc2008-maciekd/Examples/ruby/class/example.dsp =================================================================== --- branches/gsoc2008-maciekd/Examples/ruby/class/example.dsp 2012-05-06 01:13:16 UTC (rev 13033) +++ branches/gsoc2008-maciekd/Examples/ruby/class/example.dsp 2012-05-06 01:17:11 UTC (rev 13034) @@ -123,7 +123,7 @@ InputPath=.\example.i InputName=example -"$(InputName)_wrap.cxx" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" +"$(InputName)_wrap.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" echo In order to function correctly, please ensure the following environment variables are correctly set: echo RUBY_INCLUDE: %RUBY_INCLUDE% echo RUBY_LIB: %RUBY_LIB% @@ -138,7 +138,7 @@ InputPath=.\example.i InputName=example -"$(InputName)_wrap.cxx" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" +"$(InputName)_wrap.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" echo In order to function correctly, please ensure the following environment variables are correctly set: echo RUBY_INCLUDE: %RUBY_INCLUDE% echo RUBY_LIB: %RUBY_LIB% Modified: branches/gsoc2008-maciekd/Examples/ruby/free_function/example.cxx =================================================================== --- branches/gsoc2008-maciekd/Examples/ruby/free_function/example.cxx 2012-05-06 01:13:16 UTC (rev 13033) +++ branches/gsoc2008-maciekd/Examples/ruby/free_function/example.cxx 2012-05-06 01:17:11 UTC (rev 13034) @@ -23,7 +23,7 @@ IterType iter = this->animals.begin(); IterType end = this->animals.end(); - for(; iter != end; ++iter) + for(iter; iter != end; ++iter) { Animal* animal = *iter; delete animal; Modified: branches/gsoc2008-maciekd/Examples/ruby/free_function/example.dsp =================================================================== --- branches/gsoc2008-maciekd/Examples/ruby/free_function/example.dsp 2012-05-06 01:13:16 UTC (rev 13033) +++ branches/gsoc2008-maciekd/Examples/ruby/free_function/example.dsp 2012-05-06 01:17:11 UTC (rev 13034) @@ -123,7 +123,7 @@ InputPath=.\example.i InputName=example -"$(InputName)_wrap.cxx" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" +"$(InputName)_wrap.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" echo In order to function correctly, please ensure the following environment variables are correctly set: echo RUBY_INCLUDE: %RUBY_INCLUDE% echo RUBY_LIB: %RUBY_LIB% @@ -138,7 +138,7 @@ InputPath=.\example.i InputName=example -"$(InputName)_wrap.cxx" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" +"$(InputName)_wrap.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" echo In order to function correctly, please ensure the following environment variables are correctly set: echo RUBY_INCLUDE: %RUBY_INCLUDE% echo RUBY_LIB: %RUBY_LIB% Modified: branches/gsoc2008-maciekd/Examples/ruby/import/bar.dsp =================================================================== --- branches/gsoc2008-maciekd/Examples/ruby/import/bar.dsp 2012-05-06 01:13:16 UTC (rev 13033) +++ branches/gsoc2008-maciekd/Examples/ruby/import/bar.dsp 2012-05-06 01:17:11 UTC (rev 13034) @@ -115,7 +115,7 @@ InputPath=.\bar.i InputName=bar -"$(InputName)_wrap.cxx" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" +"$(InputName)_wrap.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" echo In order to function correctly, please ensure the following environment variables are correctly set: echo RUBY_INCLUDE: %RUBY_INCLUDE% echo RUBY_LIB: %RUBY_LIB% @@ -130,7 +130,7 @@ InputPath=.\bar.i InputName=bar -"$(InputName)_wrap.cxx" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" +"$(InputName)_wrap.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" echo In order to function correctly, please ensure the following environment variables are correctly set: echo RUBY_INCLUDE: %RUBY_INCLUDE% echo RUBY_LIB: %RUBY_LIB% Modified: branches/gsoc2008-maciekd/Examples/ruby/import/base.dsp =================================================================== --- branches/gsoc2008-maciekd/Examples/ruby/import/base.dsp 2012-05-06 01:13:16 UTC (rev 13033) +++ branches/gsoc2008-maciekd/Examples/ruby/import/base.dsp 2012-05-06 01:17:11 UTC (rev 13034) @@ -115,7 +115,7 @@ InputPath=.\base.i InputName=base -"$(InputName)_wrap.cxx" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" +"$(InputName)_wrap.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" echo In order to function correctly, please ensure the following environment variables are correctly set: echo RUBY_INCLUDE: %RUBY_INCLUDE% echo RUBY_LIB: %RUBY_LIB% @@ -130,7 +130,7 @@ InputPath=.\base.i InputName=base -"$(InputName)_wrap.cxx" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" +"$(InputName)_wrap.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" echo In order to function correctly, please ensure the following environment variables are correctly set: echo RUBY_INCLUDE: %RUBY_INCLUDE% echo RUBY_LIB: %RUBY_LIB% Modified: branches/gsoc2008-maciekd/Examples/ruby/import/foo.dsp =================================================================== --- branches/gsoc2008-maciekd/Examples/ruby/import/foo.dsp 2012-05-06 01:13:16 UTC (rev 13033) +++ branches/gsoc2008-maciekd/Examples/ruby/import/foo.dsp 2012-05-06 01:17:11 UTC (rev 13034) @@ -115,7 +115,7 @@ InputPath=.\foo.i InputName=foo -"$(InputName)_wrap.cxx" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" +"$(InputName)_wrap.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" echo In order to function correctly, please ensure the following environment variables are correctly set: echo RUBY_INCLUDE: %RUBY_INCLUDE% echo RUBY_LIB: %RUBY_LIB% @@ -130,7 +130,7 @@ InputPath=.\foo.i InputName=foo -"$(InputName)_wrap.cxx" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" +"$(InputName)_wrap.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" echo In order to function correctly, please ensure the following environment variables are correctly set: echo RUBY_INCLUDE: %RUBY_INCLUDE% echo RUBY_LIB: %RUBY_LIB% Modified: branches/gsoc2008-maciekd/Examples/ruby/import/spam.dsp =================================================================== --- branches/gsoc2008-maciekd/Examples/ruby/import/spam.dsp 2012-05-06 01:13:16 UTC (rev 13033) +++ branches/gsoc2008-maciekd/Examples/ruby/import/spam.dsp 2012-05-06 01:17:11 UTC (rev 13034) @@ -115,7 +115,7 @@ InputPath=.\spam.i InputName=spam -"$(InputName)_wrap.cxx" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" +"$(InputName)_wrap.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" echo In order to function correctly, please ensure the following environment variables are correctly set: echo RUBY_INCLUDE: %RUBY_INCLUDE% echo RUBY_LIB: %RUBY_LIB% @@ -130,7 +130,7 @@ InputPath=.\spam.i InputName=spam -"$(InputName)_wrap.cxx" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" +"$(InputName)_wrap.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" echo In order to function correctly, please ensure the following environment variables are correctly set: echo RUBY_INCLUDE: %RUBY_INCLUDE% echo RUBY_LIB: %RUBY_LIB% Modified: branches/gsoc2008-maciekd/Examples/ruby/mark_function/example.dsp =================================================================== --- branches/gsoc2008-maciekd/Examples/ruby/mark_function/example.dsp 2012-05-06 01:13:16 UTC (rev 13033) +++ branches/gsoc2008-maciekd/Examples/ruby/mark_function/example.dsp 2012-05-06 01:17:11 UTC (rev 13034) @@ -123,7 +123,7 @@ InputPath=.\example.i InputName=example -"$(InputName)_wrap.cxx" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" +"$(InputName)_wrap.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" echo In order to function correctly, please ensure the following environment variables are correctly set: echo RUBY_INCLUDE: %RUBY_INCLUDE% echo RUBY_LIB: %RUBY_LIB% @@ -138,7 +138,7 @@ InputPath=.\example.i InputName=example -"$(InputName)_wrap.cxx" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" +"$(InputName)_wrap.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" echo In order to function correctly, please ensure the following environment variables are correctly set: echo RUBY_INCLUDE: %RUBY_INCLUDE% echo RUBY_LIB: %RUBY_LIB% Modified: branches/gsoc2008-maciekd/Examples/tcl/import/base.h =================================================================== --- branches/gsoc2008-maciekd/Examples/tcl/import/base.h 2012-05-06 01:13:16 UTC (rev 13033) +++ branches/gsoc2008-maciekd/Examples/tcl/import/base.h 2012-05-06 01:17:11 UTC (rev 13034) @@ -3,7 +3,7 @@ class Base { public: Base() { }; - virtual ~Base() { }; + ~Base() { }; virtual void A() { printf("I'm Base::A\n"); } Modified: branches/gsoc2008-maciekd/Examples/test-suite/apply_signed_char.i =================================================================== --- branches/gsoc2008-maciekd/Examples/test-suite/apply_signed_char.i 2012-05-06 01:13:16 UTC (rev 13033) +++ branches/gsoc2008-maciekd/Examples/test-suite/apply_signed_char.i 2012-05-06 01:17:11 UTC (rev 13034) @@ -31,7 +31,5 @@ const char memberconstchar; virtual ~DirectorTest() {} - private: - DirectorTest& operator=(const DirectorTest &); }; %} Modified: branches/gsoc2008-maciekd/Examples/test-suite/bools.i =================================================================== --- branches/gsoc2008-maciekd/Examples/test-suite/bools.i 2012-05-06 01:13:16 UTC (rev 13033) +++ branches/gsoc2008-maciekd/Examples/test-suite/bools.i 2012-05-06 01:17:11 UTC (rev 13034) @@ -57,8 +57,6 @@ m_rbool(m_bool2), m_const_pbool(m_pbool), m_const_rbool(m_rbool) {} -private: - BoolStructure& operator=(const BoolStructure &); }; %} Modified: branches/gsoc2008-maciekd/Examples/test-suite/char_strings.i =================================================================== --- branches/gsoc2008-maciekd/Examples/test-suite/char_strings.i 2012-05-06 01:13:16 UTC (rev 13033) +++ branches/gsoc2008-maciekd/Examples/test-suite/char_strings.i 2012-05-06 01:17:11 UTC (rev 13034) @@ -10,7 +10,7 @@ %warnfilter(SWIGWARN_TYPEMAP_CHARLEAK_MSG) global_const_char; // Setting a const char * variable may leak memory. %{ -#define OTHERLAND_MSG "Little message from the safe world." +#define OTHERLAND_MSG "Little message from the the safe world." #define CPLUSPLUS_MSG "A message from the deep dark world of C++, where anything is possible." static char *global_str = NULL; const int UINT_DIGITS = 10; // max unsigned int is 4294967295 Modified: branches/gsoc2008-maciekd/Examples/test-suite/chicken/Makefile.in =================================================================== --- branches/gsoc2008-maciekd/Examples/test-suite/chicken/Makefile.in 2012-05-06 01:13:16 UTC (rev 13033) +++ branches/gsoc2008-maciekd/Examples/test-suite/chicken/Makefile.in 2012-05-06 01:17:11 UTC (rev 13034) @@ -40,7 +40,7 @@ $(setup) +$(swig_and_compile_c) $(run_testcase) - if [ -f $(srcdir)/$(SCRIPTPREFIX)$*$(PROXYSUFFIX) ]; then ( \ + +if [ -f $(srcdir)/$(SCRIPTPREFIX)$*$(PROXYSUFFIX) ]; then ( \ $(MAKE) $*.cproxy; ) \ fi; @@ -54,7 +54,7 @@ %.externaltest: $(setup) - +$(swig_and_compile_external) + $(swig_and_compile_external) $(run_testcase) # Runs the testcase. A testcase is only run if @@ -69,21 +69,21 @@ %.cppproxy: SWIGOPT += -proxy %.cppproxy: SCRIPTSUFFIX = $(PROXYSUFFIX) %.cppproxy: - echo "$(ACTION)ing testcase $* (with run test) under chicken with -proxy" - +$(swig_and_compile_cpp) + echo "Checking testcase $* (with run test) under chicken with -proxy" + $(swig_and_compile_cpp) $(run_testcase) %.cproxy: SWIGOPT += -proxy %.cproxy: SCRIPTSUFFIX = $(PROXYSUFFIX) %.cproxy: - echo "$(ACTION)ing testcase $* (with run test) under chicken with -proxy" + echo "Checking testcase $* (with run test) under chicken with -proxy" +$(swig_and_compile_c) $(run_testcase) %.multiproxy: SWIGOPT += -proxy -noclosuses %.multiproxy: SCRIPTSUFFIX = $(PROXYSUFFIX) %.multiproxy: - echo "$(ACTION)ing testcase $* (with run test) under chicken with -proxy" + echo "Checking testcase $* (with run test) under chicken with -proxy" +$(swig_and_compile_multi_cpp) $(run_testcase) Modified: branches/gsoc2008-maciekd/Examples/test-suite/common.mk =================================================================== --- branches/gsoc2008-maciekd/Examples/test-suite/common.mk 2012-05-06 01:13:16 UTC (rev 13033) +++ branches/gsoc2008-maciekd/Examples/test-suite/common.mk 2012-05-06 01:17:11 UTC (rev 13034) @@ -203,7 +203,6 @@ inherit_target_language \ inherit_void_arg \ inline_initializer \ - keyword_rename \ kind \ langobj \ li_attribute \ @@ -424,7 +423,6 @@ immutable \ inctest \ integers \ - keyword_rename \ lextype \ li_carrays \ li_cdata \ Modified: branches/gsoc2008-maciekd/Examples/test-suite/constant_pointers.i =================================================================== --- branches/gsoc2008-maciekd/Examples/test-suite/constant_pointers.i 2012-05-06 01:13:16 UTC (rev 13033) +++ branches/gsoc2008-maciekd/Examples/test-suite/constant_pointers.i 2012-05-06 01:17:11 UTC (rev 13034) @@ -46,8 +46,6 @@ int* array_member1[ARRAY_SIZE]; ParametersTest* array_member2[ARRAY_SIZE]; MemberVariablesTest() : member3(NULL), member4(NULL) {} -private: - MemberVariablesTest& operator=(const MemberVariablesTest&); }; void foo(const int *const i) {} @@ -71,8 +69,6 @@ void ret6(int*& a) {} int*& ret7() {return GlobalIntPtr;} ReturnValuesTest() : int3(NULL) {} -private: - ReturnValuesTest& operator=(const ReturnValuesTest&); }; const int* globalRet1() {return &GlobalInt;} @@ -104,8 +100,6 @@ A* ap; const A* cap; Acptr acptr; - private: - B& operator=(const B&); }; const B* bar(const B* b) { Modified: branches/gsoc2008-maciekd/Examples/test-suite/cpp_basic.i =================================================================== --- branches/gsoc2008-maciekd/Examples/test-suite/cpp_basic.i 2012-05-06 01:13:16 UTC (rev 13033) +++ branches/gsoc2008-maciekd/Examples/test-suite/cpp_basic.i 2012-05-06 01:17:11 UTC (rev 13034) @@ -55,8 +55,6 @@ Foo *testFoo(int a, Foo *f) { return new Foo(2 * a + (f ? f->num : 0) + fval.num); } -private: - Bar& operator=(const Bar&); }; %} Modified: branches/gsoc2008-maciekd/Examples/test-suite/csharp/Makefile.in =================================================================== --- branches/gsoc2008-maciekd/Examples/test-suite/csharp/Makefile.in 2012-05-06 01:13:16 UTC (rev 13033) +++ branches/gsoc2008-maciekd/Examples/test-suite/csharp/Makefile.in 2012-05-06 01:17:11 UTC (rev 13034) @@ -51,9 +51,9 @@ # Makes a directory for the testcase if it does not exist setup = \ if [ -f $(srcdir)/$(SCRIPTPREFIX)$*$(SCRIPTSUFFIX) ]; then \ - echo "$(ACTION)ing testcase $* (with run test) under $(LANGUAGE)" ; \ + echo "Checking testcase $* (with run test) under $(LANGUAGE)" ; \ else \ - echo "$(ACTION)ing testcase $* under $(LANGUAGE)" ; \ + echo "Checking testcase $* under $(LANGUAGE)" ; \ fi; \ if [ ! -d $* ]; then \ mkdir $*; \ Modified: branches/gsoc2008-maciekd/Examples/test-suite/csharp/char_strings_runme.cs =================================================================== --- branches/gsoc2008-maciekd/Examples/test-suite/csharp/char_strings_runme.cs 2012-05-06 01:13:16 UTC (rev 13033) +++ branches/gsoc2008-maciekd/Examples/test-suite/csharp/char_strings_runme.cs 2012-05-06 01:17:11 UTC (rev 13034) @@ -5,7 +5,7 @@ public class char_strings_runme { private static string CPLUSPLUS_MSG = "A message from the deep dark world of C++, where anything is possible."; - private static string OTHERLAND_MSG = "Little message from the safe world."; + private static string OTHERLAND_MSG = "Little message from the the safe world."; public static void Main() { Modified: branches/gsoc2008-maciekd/Examples/test-suite/enum_thorough.i =================================================================== --- branches/gsoc2008-maciekd/Examples/test-suite/enum_thorough.i 2012-05-06 01:13:16 UTC (rev 13033) +++ branches/gsoc2008-maciekd/Examples/test-suite/enum_thorough.i 2012-05-06 01:17:11 UTC (rev 13034) @@ -81,8 +81,6 @@ const colour myColour2; speedtd1 mySpeedtd1; SpeedClass() : myColour2(red), mySpeedtd1(slow) { } -private: - SpeedClass& operator=(const SpeedClass&); }; int speedTest0(int s) { return s; } Modified: branches/gsoc2008-maciekd/Examples/test-suite/fvirtual.i =================================================================== --- branches/gsoc2008-maciekd/Examples/test-suite/fvirtual.i 2012-05-06 01:13:16 UTC (rev 13033) +++ branches/gsoc2008-maciekd/Examples/test-suite/fvirtual.i 2012-05-06 01:17:11 UTC (rev 13034) @@ -10,11 +10,11 @@ virtual ~Node() {} }; - class NodeSwitch : public Node { + class Switch : public Node { public : virtual int addChild( Node *child ) { return 2; } // This was hidden with -fvirtual virtual int addChild( Node *child, bool value ) { return 3; } - virtual ~NodeSwitch() {} + virtual ~Switch() {} }; %} Modified: branches/gsoc2008-maciekd/Examples/test-suite/guilescm/Makefile.in =================================================================== --- branches/gsoc2008-maciekd/Examples/test-suite/guilescm/Makefile.in 2012-05-06 01:13:16 UTC (rev 13033) +++ branches/gsoc2008-maciekd/Examples/test-suite/guilescm/Makefile.in 2012-05-06 01:17:11 UTC (rev 13034) @@ -21,9 +21,9 @@ setup = \ if [ -f $(srcdir)/$(SCRIPTPREFIX)$*$(SCRIPTSUFFIX) ]; then \ - echo "$(ACTION)ing testcase $* (with run test) under $(LANGUAGE) (with SCM API)" ; \ + echo "Checking testcase $* (with run test) under $(LANGUAGE) (with SCM API)" ; \ else \ - echo "$(ACTION)ing testcase $* under $(LANGUAGE) (with SCM API)" ; \ + echo "Checking testcase $* under $(LANGUAGE) (with SCM API)" ; \ fi; swig_and_compile_multi_cpp = \ @@ -43,9 +43,9 @@ # Same as setup and run_testcase, but without the SCRIPTPREFIX (so the runme comes from the guilescm directory) local_setup = \ if [ -f $(srcdir)/$*$(SCRIPTSUFFIX) ]; then \ - echo "$(ACTION)ing testcase $* (with run test) under $(LANGUAGE) (with SCM API)" ; \ + echo "Checking testcase $* (with run test) under $(LANGUAGE) (with SCM API)" ; \ else \ - echo "$(ACTION)ing testcase $* under $(LANGUAGE) (with SCM API)" ; \ + echo "Checking testcase $* under $(LANGUAGE) (with SCM API)" ; \ fi; local_run_testcase = \ Modified: branches/gsoc2008-maciekd/Examples/test-suite/java/Makefile.in =================================================================== --- branches/gsoc2008-maciekd/Examples/test-suite/java/Makefile.in 2012-05-06 01:13:16 UTC (rev 13033) +++ branches/gsoc2008-maciekd/Examples/test-suite/java/Makefile.in 2012-05-06 01:17:11 UTC (rev 13034) @@ -57,9 +57,9 @@ # Makes a directory for the testcase if it does not exist setup = \ if [ -f $(srcdir)/$(SCRIPTPREFIX)$*$(SCRIPTSUFFIX) ]; then \ - echo "$(ACTION)ing testcase $* (with run test) under $(LANGUAGE)" ; \ + echo "Checking testcase $* (with run test) under $(LANGUAGE)" ; \ else \ - echo "$(ACTION)ing testcase $* under $(LANGUAGE)" ; \ + echo "Checking testcase $* under $(LANGUAGE)" ; \ fi; \ if [ ! -d $* ]; then \ mkdir $*; \ Modified: branches/gsoc2008-maciekd/Examples/test-suite/java/char_strings_runme.java =================================================================== --- branches/gsoc2008-maciekd/Examples/test-suite/java/char_strings_runme.java 2012-05-06 01:13:16 UTC (rev 13033) +++ branches/gsoc2008-maciekd/Examples/test-suite/java/char_strings_runme.java 2012-05-06 01:17:11 UTC (rev 13034) @@ -12,7 +12,7 @@ } private static String CPLUSPLUS_MSG = "A message from the deep dark world of C++, where anything is possible."; - private static String OTHERLAND_MSG = "Little message from the safe world."; + private static String OTHERLAND_MSG = "Little message from the the safe world."; public static void main(String argv[]) { Modified: branches/gsoc2008-maciekd/Examples/test-suite/java_typemaps_proxy.i =================================================================== --- branches/gsoc2008-maciekd/Examples/test-suite/java_typemaps_proxy.i 2012-05-06 01:13:16 UTC (rev 13033) +++ branches/gsoc2008-maciekd/Examples/test-suite/java_typemaps_proxy.i 2012-05-06 01:17:11 UTC (rev 13034) @@ -119,8 +119,6 @@ void const_member_method(const ConstWithout *p) const {} const ConstWithout * const_var; const ConstWithout * const var_const; -private: - ConstWithout& operator=(const ConstWithout &); }; const ConstWithout * global_constwithout = 0; void global_method_constwithout(const ConstWithout *p) {} Deleted: branches/gsoc2008-maciekd/Examples/test-suite/keyword_rename.i =================================================================== --- branches/gsoc2008-maciekd/Examples/test-suite/keyword_rename.i 2012-05-06 01:13:16 UTC (rev 13033) +++ branches/gsoc2008-maciekd/Examples/test-suite/keyword_rename.i 2012-05-06 01:17:11 UTC (rev 13034) @@ -1,32 +0,0 @@ -/* - * Test reserved keyword renaming - */ - -%module keyword_rename - -#pragma SWIG nowarn=SWIGWARN_PARSE_KEYWORD - -%inline %{ - -#define KW(x, y) int x (int y) { return y; } - -/* Python keywords */ -KW(in, except) -KW(except, in) -KW(pass, in) - -/* Perl keywords */ -KW(tie, die) -KW(use, next) - -/* Java keywords */ -KW(implements, native) -KW(synchronized, final) - -/* C# Keywords */ -KW(string, out) -struct sealed {int i;}; - -%} - - Modified: branches/gsoc2008-maciekd/Examples/test-suite/li_std_string.i =================================================================== --- branches/gsoc2008-maciekd/Examples/test-suite/li_std_string.i 2012-05-06 01:13:16 UTC (rev 13033) +++ branches/gsoc2008-maciekd/Examples/test-suite/li_std_string.i 2012-05-06 01:17:11 UTC (rev 13034) @@ -129,7 +129,7 @@ %} %inline %{ - std::string stdstring_empty() { + std::string empty() { return std::string(); } Deleted: branches/gsoc2008-maciekd/Examples/test-suite/lua/li_typemaps_runme.lua =================================================================== --- branches/gsoc2008-maciekd/Examples/test-suite/lua/li_typemaps_ru... [truncated message content] |
From: <wsf...@us...> - 2012-05-06 01:13:32
|
Revision: 13033 http://swig.svn.sourceforge.net/swig/?rev=13033&view=rev Author: wsfulton Date: 2012-05-06 01:13:16 +0000 (Sun, 06 May 2012) Log Message: ----------- Revert rev 11187 "Merged with recent changes from trunk." This reverts commit c595e4d90ebfd63eb55430c735bb121cf690bd59. Conflicts: Source/Modules/c.cxx From: William S Fulton <ws...@fu...> Revision Links: -------------- http://swig.svn.sourceforge.net/swig/?rev=11187&view=rev Modified Paths: -------------- branches/gsoc2008-maciekd/ANNOUNCE branches/gsoc2008-maciekd/CHANGES branches/gsoc2008-maciekd/CHANGES.current branches/gsoc2008-maciekd/Doc/Manual/Allegrocl.html branches/gsoc2008-maciekd/Doc/Manual/CSharp.html branches/gsoc2008-maciekd/Doc/Manual/Chicken.html branches/gsoc2008-maciekd/Doc/Manual/Contents.html branches/gsoc2008-maciekd/Doc/Manual/Customization.html branches/gsoc2008-maciekd/Doc/Manual/Extending.html branches/gsoc2008-maciekd/Doc/Manual/Guile.html branches/gsoc2008-maciekd/Doc/Manual/Introduction.html branches/gsoc2008-maciekd/Doc/Manual/Java.html branches/gsoc2008-maciekd/Doc/Manual/Library.html branches/gsoc2008-maciekd/Doc/Manual/Lisp.html branches/gsoc2008-maciekd/Doc/Manual/Lua.html branches/gsoc2008-maciekd/Doc/Manual/Makefile branches/gsoc2008-maciekd/Doc/Manual/Modula3.html branches/gsoc2008-maciekd/Doc/Manual/Modules.html branches/gsoc2008-maciekd/Doc/Manual/Mzscheme.html branches/gsoc2008-maciekd/Doc/Manual/Ocaml.html branches/gsoc2008-maciekd/Doc/Manual/Octave.html branches/gsoc2008-maciekd/Doc/Manual/Perl5.html branches/gsoc2008-maciekd/Doc/Manual/Php.html branches/gsoc2008-maciekd/Doc/Manual/Pike.html branches/gsoc2008-maciekd/Doc/Manual/Preprocessor.html branches/gsoc2008-maciekd/Doc/Manual/Python.html branches/gsoc2008-maciekd/Doc/Manual/R.html branches/gsoc2008-maciekd/Doc/Manual/Ruby.html branches/gsoc2008-maciekd/Doc/Manual/SWIG.html branches/gsoc2008-maciekd/Doc/Manual/Sections.html branches/gsoc2008-maciekd/Doc/Manual/Tcl.html branches/gsoc2008-maciekd/Doc/Manual/Typemaps.html branches/gsoc2008-maciekd/Doc/Manual/Warnings.html branches/gsoc2008-maciekd/Doc/Manual/Windows.html branches/gsoc2008-maciekd/Doc/Manual/chapters branches/gsoc2008-maciekd/Doc/Manual/swig16.png branches/gsoc2008-maciekd/Doc/README branches/gsoc2008-maciekd/Examples/GIFPlot/Java/full/README branches/gsoc2008-maciekd/Examples/GIFPlot/Java/shadow/Makefile branches/gsoc2008-maciekd/Examples/GIFPlot/Java/shadow/README branches/gsoc2008-maciekd/Examples/GIFPlot/Java/simple/README branches/gsoc2008-maciekd/Examples/GIFPlot/Lib/color.c branches/gsoc2008-maciekd/Examples/GIFPlot/Lib/gif.c branches/gsoc2008-maciekd/Examples/GIFPlot/Perl5/shadow/Makefile branches/gsoc2008-maciekd/Examples/GIFPlot/Python/full/Makefile branches/gsoc2008-maciekd/Examples/GIFPlot/Python/shadow/Makefile branches/gsoc2008-maciekd/Examples/GIFPlot/Python/simple/Makefile branches/gsoc2008-maciekd/Examples/GIFPlot/Ruby/shadow/Makefile branches/gsoc2008-maciekd/Examples/Makefile.in branches/gsoc2008-maciekd/Examples/csharp/check.list branches/gsoc2008-maciekd/Examples/guile/matrix/matrix.scm branches/gsoc2008-maciekd/Examples/java/class/index.html branches/gsoc2008-maciekd/Examples/java/constants/index.html branches/gsoc2008-maciekd/Examples/java/enum/index.html branches/gsoc2008-maciekd/Examples/java/funcptr/index.html branches/gsoc2008-maciekd/Examples/java/index.html branches/gsoc2008-maciekd/Examples/java/native/index.html branches/gsoc2008-maciekd/Examples/java/pointer/index.html branches/gsoc2008-maciekd/Examples/java/reference/index.html branches/gsoc2008-maciekd/Examples/java/simple/index.html branches/gsoc2008-maciekd/Examples/java/template/index.html branches/gsoc2008-maciekd/Examples/java/typemap/index.html branches/gsoc2008-maciekd/Examples/java/variables/index.html branches/gsoc2008-maciekd/Examples/lua/embed3/embed3.cpp branches/gsoc2008-maciekd/Examples/perl5/class/example.dsp branches/gsoc2008-maciekd/Examples/perl5/import/bar.dsp branches/gsoc2008-maciekd/Examples/perl5/import/base.dsp branches/gsoc2008-maciekd/Examples/perl5/import/foo.dsp branches/gsoc2008-maciekd/Examples/perl5/import/spam.dsp branches/gsoc2008-maciekd/Examples/perl5/multimap/example.dsp branches/gsoc2008-maciekd/Examples/perl5/simple/example.dsp branches/gsoc2008-maciekd/Examples/pike/class/Makefile branches/gsoc2008-maciekd/Examples/pike/class/example.cxx branches/gsoc2008-maciekd/Examples/pike/class/example.h branches/gsoc2008-maciekd/Examples/pike/class/example.i branches/gsoc2008-maciekd/Examples/pike/constants/Makefile branches/gsoc2008-maciekd/Examples/pike/constants/example.i branches/gsoc2008-maciekd/Examples/pike/overload/example.cxx branches/gsoc2008-maciekd/Examples/pike/overload/example.h branches/gsoc2008-maciekd/Examples/pike/template/Makefile branches/gsoc2008-maciekd/Examples/pike/template/example.h branches/gsoc2008-maciekd/Examples/pike/template/example.i branches/gsoc2008-maciekd/Examples/python/callback/Makefile branches/gsoc2008-maciekd/Examples/python/class/Makefile branches/gsoc2008-maciekd/Examples/python/class/example.dsp branches/gsoc2008-maciekd/Examples/python/class/example.i branches/gsoc2008-maciekd/Examples/python/constants/Makefile branches/gsoc2008-maciekd/Examples/python/contract/Makefile branches/gsoc2008-maciekd/Examples/python/contract/example.dsp branches/gsoc2008-maciekd/Examples/python/docstrings/Makefile branches/gsoc2008-maciekd/Examples/python/enum/Makefile branches/gsoc2008-maciekd/Examples/python/exception/Makefile branches/gsoc2008-maciekd/Examples/python/exceptproxy/Makefile branches/gsoc2008-maciekd/Examples/python/extend/Makefile branches/gsoc2008-maciekd/Examples/python/funcptr/Makefile branches/gsoc2008-maciekd/Examples/python/funcptr2/Makefile branches/gsoc2008-maciekd/Examples/python/functor/Makefile branches/gsoc2008-maciekd/Examples/python/import/Makefile branches/gsoc2008-maciekd/Examples/python/import/bar.dsp branches/gsoc2008-maciekd/Examples/python/import/base.dsp branches/gsoc2008-maciekd/Examples/python/import/foo.dsp branches/gsoc2008-maciekd/Examples/python/import/spam.dsp branches/gsoc2008-maciekd/Examples/python/import_template/Makefile branches/gsoc2008-maciekd/Examples/python/libffi/Makefile branches/gsoc2008-maciekd/Examples/python/multimap/Makefile branches/gsoc2008-maciekd/Examples/python/multimap/example.dsp branches/gsoc2008-maciekd/Examples/python/multimap/example.i branches/gsoc2008-maciekd/Examples/python/operator/Makefile branches/gsoc2008-maciekd/Examples/python/pointer/Makefile branches/gsoc2008-maciekd/Examples/python/reference/Makefile branches/gsoc2008-maciekd/Examples/python/simple/Makefile branches/gsoc2008-maciekd/Examples/python/simple/example.dsp branches/gsoc2008-maciekd/Examples/python/smartptr/Makefile branches/gsoc2008-maciekd/Examples/python/std_map/Makefile branches/gsoc2008-maciekd/Examples/python/std_map/example.i branches/gsoc2008-maciekd/Examples/python/std_vector/Makefile branches/gsoc2008-maciekd/Examples/python/swigrun/Makefile branches/gsoc2008-maciekd/Examples/python/template/Makefile branches/gsoc2008-maciekd/Examples/python/varargs/Makefile branches/gsoc2008-maciekd/Examples/python/variables/Makefile branches/gsoc2008-maciekd/Examples/python/weave/Makefile branches/gsoc2008-maciekd/Examples/r/class/example.dsp branches/gsoc2008-maciekd/Examples/r/simple/example.dsp branches/gsoc2008-maciekd/Examples/ruby/class/example.dsp branches/gsoc2008-maciekd/Examples/ruby/free_function/example.dsp branches/gsoc2008-maciekd/Examples/ruby/free_function/example.i branches/gsoc2008-maciekd/Examples/ruby/hashargs/Makefile branches/gsoc2008-maciekd/Examples/ruby/hashargs/example.i branches/gsoc2008-maciekd/Examples/ruby/import/bar.dsp branches/gsoc2008-maciekd/Examples/ruby/import/base.dsp branches/gsoc2008-maciekd/Examples/ruby/import/foo.dsp branches/gsoc2008-maciekd/Examples/ruby/import/spam.dsp branches/gsoc2008-maciekd/Examples/ruby/mark_function/example.dsp branches/gsoc2008-maciekd/Examples/ruby/multimap/example.dsp branches/gsoc2008-maciekd/Examples/ruby/simple/example.dsp branches/gsoc2008-maciekd/Examples/ruby/std_vector/runme.rb branches/gsoc2008-maciekd/Examples/tcl/class/example.dsp branches/gsoc2008-maciekd/Examples/tcl/contract/example.dsp branches/gsoc2008-maciekd/Examples/tcl/import/bar.dsp branches/gsoc2008-maciekd/Examples/tcl/import/base.dsp branches/gsoc2008-maciekd/Examples/tcl/import/foo.dsp branches/gsoc2008-maciekd/Examples/tcl/import/spam.dsp branches/gsoc2008-maciekd/Examples/tcl/multimap/example.dsp branches/gsoc2008-maciekd/Examples/tcl/simple/example.dsp branches/gsoc2008-maciekd/Examples/test-suite/abstract_virtual.i branches/gsoc2008-maciekd/Examples/test-suite/allegrocl/Makefile.in branches/gsoc2008-maciekd/Examples/test-suite/allowexcept.i branches/gsoc2008-maciekd/Examples/test-suite/c/Makefile.in branches/gsoc2008-maciekd/Examples/test-suite/char_strings.i branches/gsoc2008-maciekd/Examples/test-suite/chicken/Makefile.in branches/gsoc2008-maciekd/Examples/test-suite/common.mk branches/gsoc2008-maciekd/Examples/test-suite/contract.i branches/gsoc2008-maciekd/Examples/test-suite/csharp/Makefile.in branches/gsoc2008-maciekd/Examples/test-suite/csharp/li_boost_shared_ptr_runme.cs branches/gsoc2008-maciekd/Examples/test-suite/csharp/li_std_vector_runme.cs branches/gsoc2008-maciekd/Examples/test-suite/csharp_prepost.i branches/gsoc2008-maciekd/Examples/test-suite/default_constructor.i branches/gsoc2008-maciekd/Examples/test-suite/director_basic.i branches/gsoc2008-maciekd/Examples/test-suite/director_classic.i branches/gsoc2008-maciekd/Examples/test-suite/director_ignore.i branches/gsoc2008-maciekd/Examples/test-suite/director_thread.i branches/gsoc2008-maciekd/Examples/test-suite/evil_diamond.i branches/gsoc2008-maciekd/Examples/test-suite/evil_diamond_ns.i branches/gsoc2008-maciekd/Examples/test-suite/evil_diamond_prop.i branches/gsoc2008-maciekd/Examples/test-suite/features.i branches/gsoc2008-maciekd/Examples/test-suite/guile/Makefile.in branches/gsoc2008-maciekd/Examples/test-suite/guilescm/Makefile.in branches/gsoc2008-maciekd/Examples/test-suite/ignore_template_constructor.i branches/gsoc2008-maciekd/Examples/test-suite/import_nomodule.i branches/gsoc2008-maciekd/Examples/test-suite/imports_b.i branches/gsoc2008-maciekd/Examples/test-suite/intermediary_classname.i branches/gsoc2008-maciekd/Examples/test-suite/java/Makefile.in branches/gsoc2008-maciekd/Examples/test-suite/java/allprotected_runme.java branches/gsoc2008-maciekd/Examples/test-suite/java/director_basic_runme.java branches/gsoc2008-maciekd/Examples/test-suite/java/director_classic_runme.java branches/gsoc2008-maciekd/Examples/test-suite/java/director_ignore_runme.java branches/gsoc2008-maciekd/Examples/test-suite/java/java_throws_runme.java branches/gsoc2008-maciekd/Examples/test-suite/java/li_boost_shared_ptr_runme.java branches/gsoc2008-maciekd/Examples/test-suite/java/overload_complicated_runme.java branches/gsoc2008-maciekd/Examples/test-suite/java_throws.i branches/gsoc2008-maciekd/Examples/test-suite/li_attribute.i branches/gsoc2008-maciekd/Examples/test-suite/li_boost_shared_ptr.i branches/gsoc2008-maciekd/Examples/test-suite/li_cstring.i branches/gsoc2008-maciekd/Examples/test-suite/li_cwstring.i branches/gsoc2008-maciekd/Examples/test-suite/li_std_map.i branches/gsoc2008-maciekd/Examples/test-suite/li_std_set.i branches/gsoc2008-maciekd/Examples/test-suite/li_std_vector.i branches/gsoc2008-maciekd/Examples/test-suite/minherit2.i branches/gsoc2008-maciekd/Examples/test-suite/multiple_inheritance.i branches/gsoc2008-maciekd/Examples/test-suite/name_warnings.i branches/gsoc2008-maciekd/Examples/test-suite/namespace_typemap.i branches/gsoc2008-maciekd/Examples/test-suite/nested_comment.i branches/gsoc2008-maciekd/Examples/test-suite/ocaml/Makefile.in branches/gsoc2008-maciekd/Examples/test-suite/octave/Makefile.in branches/gsoc2008-maciekd/Examples/test-suite/octave/li_attribute_runme.m branches/gsoc2008-maciekd/Examples/test-suite/operator_overload.i branches/gsoc2008-maciekd/Examples/test-suite/packageoption.h branches/gsoc2008-maciekd/Examples/test-suite/packageoption.list branches/gsoc2008-maciekd/Examples/test-suite/packageoption_a.i branches/gsoc2008-maciekd/Examples/test-suite/packageoption_b.i branches/gsoc2008-maciekd/Examples/test-suite/perl5/char_strings_runme.pl branches/gsoc2008-maciekd/Examples/test-suite/perl5/li_typemaps_runme.pl branches/gsoc2008-maciekd/Examples/test-suite/perl5/packageoption_runme.pl branches/gsoc2008-maciekd/Examples/test-suite/preproc.i branches/gsoc2008-maciekd/Examples/test-suite/pure_virtual.i branches/gsoc2008-maciekd/Examples/test-suite/python/Makefile.in branches/gsoc2008-maciekd/Examples/test-suite/python/README branches/gsoc2008-maciekd/Examples/test-suite/python/contract_runme.py branches/gsoc2008-maciekd/Examples/test-suite/python/cpp_namespace_runme.py branches/gsoc2008-maciekd/Examples/test-suite/python/director_classic_runme.py branches/gsoc2008-maciekd/Examples/test-suite/python/director_exception_runme.py branches/gsoc2008-maciekd/Examples/test-suite/python/director_thread_runme.py branches/gsoc2008-maciekd/Examples/test-suite/python/file_test_runme.py branches/gsoc2008-maciekd/Examples/test-suite/python/hugemod.pl branches/gsoc2008-maciekd/Examples/test-suite/python/li_attribute_runme.py branches/gsoc2008-maciekd/Examples/test-suite/python/li_boost_shared_ptr_runme.py branches/gsoc2008-maciekd/Examples/test-suite/python/swigobject_runme.py branches/gsoc2008-maciekd/Examples/test-suite/python/template_typedef_cplx2_runme.py branches/gsoc2008-maciekd/Examples/test-suite/python/template_typedef_cplx_runme.py branches/gsoc2008-maciekd/Examples/test-suite/r/Makefile.in branches/gsoc2008-maciekd/Examples/test-suite/ruby/Makefile.in branches/gsoc2008-maciekd/Examples/test-suite/swig_examples_lock.h branches/gsoc2008-maciekd/Examples/test-suite/tcl/Makefile.in branches/gsoc2008-maciekd/Examples/test-suite/template_inherit_abstract.i branches/gsoc2008-maciekd/Examples/test-suite/template_typedef_funcptr.i branches/gsoc2008-maciekd/Examples/test-suite/typemap_namespace.i branches/gsoc2008-maciekd/Examples/test-suite/types_directive.i branches/gsoc2008-maciekd/Examples/test-suite/using_composition.i branches/gsoc2008-maciekd/Examples/test-suite/using_extend.i branches/gsoc2008-maciekd/Examples/test-suite/using_namespace.i branches/gsoc2008-maciekd/Lib/allegrocl/allegrocl.swg branches/gsoc2008-maciekd/Lib/allegrocl/inout_typemaps.i branches/gsoc2008-maciekd/Lib/allegrocl/longlongs.i branches/gsoc2008-maciekd/Lib/allegrocl/std_list.i branches/gsoc2008-maciekd/Lib/allegrocl/std_string.i branches/gsoc2008-maciekd/Lib/allkw.swg branches/gsoc2008-maciekd/Lib/cdata.i branches/gsoc2008-maciekd/Lib/chicken/chicken.swg branches/gsoc2008-maciekd/Lib/chicken/chickenrun.swg branches/gsoc2008-maciekd/Lib/csharp/boost_shared_ptr.i branches/gsoc2008-maciekd/Lib/csharp/csharp.swg branches/gsoc2008-maciekd/Lib/csharp/std_vector.i branches/gsoc2008-maciekd/Lib/csharp/std_wstring.i branches/gsoc2008-maciekd/Lib/csharp/wchar.i branches/gsoc2008-maciekd/Lib/java/boost_shared_ptr.i branches/gsoc2008-maciekd/Lib/java/java.swg branches/gsoc2008-maciekd/Lib/java/javahead.swg branches/gsoc2008-maciekd/Lib/java/std_vector.i branches/gsoc2008-maciekd/Lib/lua/luatypemaps.swg branches/gsoc2008-maciekd/Lib/ocaml/std_deque.i branches/gsoc2008-maciekd/Lib/octave/carrays.i branches/gsoc2008-maciekd/Lib/octave/octcontainer.swg branches/gsoc2008-maciekd/Lib/octave/octopers.swg branches/gsoc2008-maciekd/Lib/octave/octrun.swg branches/gsoc2008-maciekd/Lib/octave/octruntime.swg branches/gsoc2008-maciekd/Lib/octave/octstdcommon.swg branches/gsoc2008-maciekd/Lib/octave/std_basic_string.i branches/gsoc2008-maciekd/Lib/octave/std_carray.i branches/gsoc2008-maciekd/Lib/octave/std_map.i branches/gsoc2008-maciekd/Lib/perl5/noembed.h branches/gsoc2008-maciekd/Lib/perl5/perlrun.swg branches/gsoc2008-maciekd/Lib/perl5/perlstrings.swg branches/gsoc2008-maciekd/Lib/perl5/perltypemaps.swg branches/gsoc2008-maciekd/Lib/perl5/std_vector.i branches/gsoc2008-maciekd/Lib/python/boost_shared_ptr.i branches/gsoc2008-maciekd/Lib/python/director.swg branches/gsoc2008-maciekd/Lib/python/file.i branches/gsoc2008-maciekd/Lib/python/pyapi.swg branches/gsoc2008-maciekd/Lib/python/pyclasses.swg branches/gsoc2008-maciekd/Lib/python/pycontainer.swg branches/gsoc2008-maciekd/Lib/python/pyerrors.swg branches/gsoc2008-maciekd/Lib/python/pyhead.swg branches/gsoc2008-maciekd/Lib/python/pyinit.swg branches/gsoc2008-maciekd/Lib/python/pyiterators.swg branches/gsoc2008-maciekd/Lib/python/pyopers.swg branches/gsoc2008-maciekd/Lib/python/pyrun.swg branches/gsoc2008-maciekd/Lib/python/pystdcommon.swg branches/gsoc2008-maciekd/Lib/python/pystrings.swg branches/gsoc2008-maciekd/Lib/python/pytypemaps.swg branches/gsoc2008-maciekd/Lib/python/pywstrings.swg branches/gsoc2008-maciekd/Lib/python/std_carray.i branches/gsoc2008-maciekd/Lib/python/std_map.i branches/gsoc2008-maciekd/Lib/python/std_multimap.i branches/gsoc2008-maciekd/Lib/python/std_multiset.i branches/gsoc2008-maciekd/Lib/python/std_pair.i branches/gsoc2008-maciekd/Lib/python/std_set.i branches/gsoc2008-maciekd/Lib/r/r.swg branches/gsoc2008-maciekd/Lib/r/rrun.swg branches/gsoc2008-maciekd/Lib/r/rstdcommon.swg branches/gsoc2008-maciekd/Lib/r/rtype.swg branches/gsoc2008-maciekd/Lib/ruby/file.i branches/gsoc2008-maciekd/Lib/ruby/rubyhead.swg branches/gsoc2008-maciekd/Lib/ruby/rubywstrings.swg branches/gsoc2008-maciekd/Lib/shared_ptr.i branches/gsoc2008-maciekd/Lib/swig.swg branches/gsoc2008-maciekd/Lib/swigrun.swg branches/gsoc2008-maciekd/Lib/typemaps/attribute.swg branches/gsoc2008-maciekd/Lib/typemaps/swigtype.swg branches/gsoc2008-maciekd/Makefile.in branches/gsoc2008-maciekd/README branches/gsoc2008-maciekd/Source/CParse/cparse.h branches/gsoc2008-maciekd/Source/CParse/cscanner.c branches/gsoc2008-maciekd/Source/CParse/parser.y branches/gsoc2008-maciekd/Source/CParse/templ.c branches/gsoc2008-maciekd/Source/DOH/README branches/gsoc2008-maciekd/Source/DOH/base.c branches/gsoc2008-maciekd/Source/DOH/doh.h branches/gsoc2008-maciekd/Source/DOH/file.c branches/gsoc2008-maciekd/Source/DOH/hash.c branches/gsoc2008-maciekd/Source/DOH/list.c branches/gsoc2008-maciekd/Source/DOH/string.c branches/gsoc2008-maciekd/Source/Include/swigwarn.h branches/gsoc2008-maciekd/Source/Makefile.am branches/gsoc2008-maciekd/Source/Modules/allegrocl.cxx branches/gsoc2008-maciekd/Source/Modules/c.cxx branches/gsoc2008-maciekd/Source/Modules/cffi.cxx branches/gsoc2008-maciekd/Source/Modules/chicken.cxx branches/gsoc2008-maciekd/Source/Modules/clisp.cxx branches/gsoc2008-maciekd/Source/Modules/contract.cxx branches/gsoc2008-maciekd/Source/Modules/csharp.cxx branches/gsoc2008-maciekd/Source/Modules/directors.cxx branches/gsoc2008-maciekd/Source/Modules/guile.cxx branches/gsoc2008-maciekd/Source/Modules/java.cxx branches/gsoc2008-maciekd/Source/Modules/lang.cxx branches/gsoc2008-maciekd/Source/Modules/lua.cxx branches/gsoc2008-maciekd/Source/Modules/main.cxx branches/gsoc2008-maciekd/Source/Modules/modula3.cxx branches/gsoc2008-maciekd/Source/Modules/mzscheme.cxx branches/gsoc2008-maciekd/Source/Modules/ocaml.cxx branches/gsoc2008-maciekd/Source/Modules/octave.cxx branches/gsoc2008-maciekd/Source/Modules/overload.cxx branches/gsoc2008-maciekd/Source/Modules/perl5.cxx branches/gsoc2008-maciekd/Source/Modules/pike.cxx branches/gsoc2008-maciekd/Source/Modules/python.cxx branches/gsoc2008-maciekd/Source/Modules/r.cxx branches/gsoc2008-maciekd/Source/Modules/ruby.cxx branches/gsoc2008-maciekd/Source/Modules/s-exp.cxx branches/gsoc2008-maciekd/Source/Modules/swigmain.cxx branches/gsoc2008-maciekd/Source/Modules/swigmod.h branches/gsoc2008-maciekd/Source/Modules/tcl8.cxx branches/gsoc2008-maciekd/Source/Modules/uffi.cxx branches/gsoc2008-maciekd/Source/Modules/xml.cxx branches/gsoc2008-maciekd/Source/Preprocessor/cpp.c branches/gsoc2008-maciekd/Source/Preprocessor/preprocessor.h branches/gsoc2008-maciekd/Source/README branches/gsoc2008-maciekd/Source/Swig/cwrap.c branches/gsoc2008-maciekd/Source/Swig/error.c branches/gsoc2008-maciekd/Source/Swig/getopt.c branches/gsoc2008-maciekd/Source/Swig/include.c branches/gsoc2008-maciekd/Source/Swig/misc.c branches/gsoc2008-maciekd/Source/Swig/naming.c branches/gsoc2008-maciekd/Source/Swig/parms.c branches/gsoc2008-maciekd/Source/Swig/scanner.c branches/gsoc2008-maciekd/Source/Swig/stype.c branches/gsoc2008-maciekd/Source/Swig/swig.h branches/gsoc2008-maciekd/Source/Swig/swigfile.h branches/gsoc2008-maciekd/Source/Swig/swigopt.h branches/gsoc2008-maciekd/Source/Swig/swigparm.h branches/gsoc2008-maciekd/Source/Swig/swigscan.h branches/gsoc2008-maciekd/Source/Swig/swigtree.h branches/gsoc2008-maciekd/Source/Swig/swigwrap.h branches/gsoc2008-maciekd/Source/Swig/symbol.c branches/gsoc2008-maciekd/Source/Swig/tree.c branches/gsoc2008-maciekd/Source/Swig/typemap.c branches/gsoc2008-maciekd/Source/Swig/typeobj.c branches/gsoc2008-maciekd/Source/Swig/typesys.c branches/gsoc2008-maciekd/Source/Swig/wrapfunc.c branches/gsoc2008-maciekd/TODO branches/gsoc2008-maciekd/Tools/mkdist.py branches/gsoc2008-maciekd/Tools/mkrelease.py branches/gsoc2008-maciekd/Tools/mkwindows.sh branches/gsoc2008-maciekd/autogen.sh branches/gsoc2008-maciekd/configure.in Added Paths: ----------- branches/gsoc2008-maciekd/Examples/GIFPlot/Java/full/main.java branches/gsoc2008-maciekd/Examples/GIFPlot/Java/shadow/main.java branches/gsoc2008-maciekd/Examples/GIFPlot/Java/simple/main.java branches/gsoc2008-maciekd/Examples/GIFPlot/Php4/ branches/gsoc2008-maciekd/Examples/GIFPlot/Php4/check.list branches/gsoc2008-maciekd/Examples/GIFPlot/Php4/full/ branches/gsoc2008-maciekd/Examples/GIFPlot/Php4/full/Makefile branches/gsoc2008-maciekd/Examples/GIFPlot/Php4/full/README branches/gsoc2008-maciekd/Examples/GIFPlot/Php4/full/cmap branches/gsoc2008-maciekd/Examples/GIFPlot/Php4/full/gifplot.i branches/gsoc2008-maciekd/Examples/GIFPlot/Php4/full/runme.php4 branches/gsoc2008-maciekd/Examples/GIFPlot/Php4/shadow/ branches/gsoc2008-maciekd/Examples/GIFPlot/Php4/shadow/Makefile branches/gsoc2008-maciekd/Examples/GIFPlot/Php4/shadow/README branches/gsoc2008-maciekd/Examples/GIFPlot/Php4/shadow/cmap branches/gsoc2008-maciekd/Examples/GIFPlot/Php4/shadow/runme.php4 branches/gsoc2008-maciekd/Examples/GIFPlot/Php4/simple/ branches/gsoc2008-maciekd/Examples/GIFPlot/Php4/simple/Makefile branches/gsoc2008-maciekd/Examples/GIFPlot/Php4/simple/README branches/gsoc2008-maciekd/Examples/GIFPlot/Php4/simple/runme.php4 branches/gsoc2008-maciekd/Examples/GIFPlot/Php4/simple/simple.i branches/gsoc2008-maciekd/Examples/java/callback/main.java branches/gsoc2008-maciekd/Examples/java/class/main.java branches/gsoc2008-maciekd/Examples/java/constants/main.java branches/gsoc2008-maciekd/Examples/java/enum/main.java branches/gsoc2008-maciekd/Examples/java/extend/main.java branches/gsoc2008-maciekd/Examples/java/funcptr/main.java branches/gsoc2008-maciekd/Examples/java/multimap/main.java branches/gsoc2008-maciekd/Examples/java/native/main.java branches/gsoc2008-maciekd/Examples/java/pointer/main.java branches/gsoc2008-maciekd/Examples/java/reference/main.java branches/gsoc2008-maciekd/Examples/java/simple/main.java branches/gsoc2008-maciekd/Examples/java/template/main.java branches/gsoc2008-maciekd/Examples/java/typemap/main.java branches/gsoc2008-maciekd/Examples/java/variables/main.java branches/gsoc2008-maciekd/Examples/php4/ branches/gsoc2008-maciekd/Examples/php4/check.list branches/gsoc2008-maciekd/Examples/php4/class/ branches/gsoc2008-maciekd/Examples/php4/class/Makefile branches/gsoc2008-maciekd/Examples/php4/class/example.cxx branches/gsoc2008-maciekd/Examples/php4/class/example.h branches/gsoc2008-maciekd/Examples/php4/class/example.i branches/gsoc2008-maciekd/Examples/php4/class/runme.php4 branches/gsoc2008-maciekd/Examples/php4/constants/ branches/gsoc2008-maciekd/Examples/php4/constants/Makefile branches/gsoc2008-maciekd/Examples/php4/constants/example.i branches/gsoc2008-maciekd/Examples/php4/constants/runme.php4 branches/gsoc2008-maciekd/Examples/php4/cpointer/ branches/gsoc2008-maciekd/Examples/php4/cpointer/Makefile branches/gsoc2008-maciekd/Examples/php4/cpointer/example.c branches/gsoc2008-maciekd/Examples/php4/cpointer/example.i branches/gsoc2008-maciekd/Examples/php4/cpointer/runme.php4 branches/gsoc2008-maciekd/Examples/php4/disown/ branches/gsoc2008-maciekd/Examples/php4/disown/Makefile branches/gsoc2008-maciekd/Examples/php4/disown/example.cxx branches/gsoc2008-maciekd/Examples/php4/disown/example.h branches/gsoc2008-maciekd/Examples/php4/disown/example.i branches/gsoc2008-maciekd/Examples/php4/disown/runme.php4 branches/gsoc2008-maciekd/Examples/php4/enum/ branches/gsoc2008-maciekd/Examples/php4/enum/Makefile branches/gsoc2008-maciekd/Examples/php4/enum/example.cxx branches/gsoc2008-maciekd/Examples/php4/enum/example.h branches/gsoc2008-maciekd/Examples/php4/enum/example.i branches/gsoc2008-maciekd/Examples/php4/enum/runme.php4 branches/gsoc2008-maciekd/Examples/php4/funcptr/ branches/gsoc2008-maciekd/Examples/php4/funcptr/Makefile branches/gsoc2008-maciekd/Examples/php4/funcptr/example.c branches/gsoc2008-maciekd/Examples/php4/funcptr/example.h branches/gsoc2008-maciekd/Examples/php4/funcptr/example.i branches/gsoc2008-maciekd/Examples/php4/funcptr/runme.php4 branches/gsoc2008-maciekd/Examples/php4/overloading/ branches/gsoc2008-maciekd/Examples/php4/overloading/Makefile branches/gsoc2008-maciekd/Examples/php4/overloading/example.cxx branches/gsoc2008-maciekd/Examples/php4/overloading/example.h branches/gsoc2008-maciekd/Examples/php4/overloading/example.i branches/gsoc2008-maciekd/Examples/php4/overloading/runme.php4 branches/gsoc2008-maciekd/Examples/php4/pointer/ branches/gsoc2008-maciekd/Examples/php4/pointer/Makefile branches/gsoc2008-maciekd/Examples/php4/pointer/example.c branches/gsoc2008-maciekd/Examples/php4/pointer/example.i branches/gsoc2008-maciekd/Examples/php4/pointer/runme.php4 branches/gsoc2008-maciekd/Examples/php4/pragmas/ branches/gsoc2008-maciekd/Examples/php4/pragmas/Makefile branches/gsoc2008-maciekd/Examples/php4/pragmas/example.i branches/gsoc2008-maciekd/Examples/php4/pragmas/include.php branches/gsoc2008-maciekd/Examples/php4/pragmas/runme.php4 branches/gsoc2008-maciekd/Examples/php4/proxy/ branches/gsoc2008-maciekd/Examples/php4/proxy/Makefile branches/gsoc2008-maciekd/Examples/php4/proxy/example.cxx branches/gsoc2008-maciekd/Examples/php4/proxy/example.h branches/gsoc2008-maciekd/Examples/php4/proxy/example.i branches/gsoc2008-maciekd/Examples/php4/proxy/runme.php4 branches/gsoc2008-maciekd/Examples/php4/reference/ branches/gsoc2008-maciekd/Examples/php4/reference/BUILD-proxy.sh branches/gsoc2008-maciekd/Examples/php4/reference/Makefile branches/gsoc2008-maciekd/Examples/php4/reference/example.cxx branches/gsoc2008-maciekd/Examples/php4/reference/example.h branches/gsoc2008-maciekd/Examples/php4/reference/example.i branches/gsoc2008-maciekd/Examples/php4/reference/runme-proxy.php4 branches/gsoc2008-maciekd/Examples/php4/reference/runme.php4 branches/gsoc2008-maciekd/Examples/php4/simple/ branches/gsoc2008-maciekd/Examples/php4/simple/Makefile branches/gsoc2008-maciekd/Examples/php4/simple/example.c branches/gsoc2008-maciekd/Examples/php4/simple/example.i branches/gsoc2008-maciekd/Examples/php4/simple/runme.php4 branches/gsoc2008-maciekd/Examples/php4/sync/ branches/gsoc2008-maciekd/Examples/php4/sync/Makefile branches/gsoc2008-maciekd/Examples/php4/sync/example.cxx branches/gsoc2008-maciekd/Examples/php4/sync/example.h branches/gsoc2008-maciekd/Examples/php4/sync/example.i branches/gsoc2008-maciekd/Examples/php4/sync/runme.php4 branches/gsoc2008-maciekd/Examples/php4/value/ branches/gsoc2008-maciekd/Examples/php4/value/Makefile branches/gsoc2008-maciekd/Examples/php4/value/example.c branches/gsoc2008-maciekd/Examples/php4/value/example.h branches/gsoc2008-maciekd/Examples/php4/value/example.i branches/gsoc2008-maciekd/Examples/php4/value/runme.php4 branches/gsoc2008-maciekd/Examples/php4/variables/ branches/gsoc2008-maciekd/Examples/php4/variables/Makefile branches/gsoc2008-maciekd/Examples/php4/variables/example.c branches/gsoc2008-maciekd/Examples/php4/variables/example.h branches/gsoc2008-maciekd/Examples/php4/variables/example.i branches/gsoc2008-maciekd/Examples/php4/variables/runme.php4 branches/gsoc2008-maciekd/Examples/php4/variables/runme.php4.old branches/gsoc2008-maciekd/Examples/test-suite/chicken/ext_test.i branches/gsoc2008-maciekd/Examples/test-suite/chicken/ext_test_runme.ss branches/gsoc2008-maciekd/Examples/test-suite/guilescm/ext_test.i branches/gsoc2008-maciekd/Examples/test-suite/guilescm/ext_test_runme.scm branches/gsoc2008-maciekd/Examples/test-suite/octave/cell_deref.i branches/gsoc2008-maciekd/Examples/test-suite/octave/cell_deref_runme.m branches/gsoc2008-maciekd/Examples/test-suite/octave/implicittest.i branches/gsoc2008-maciekd/Examples/test-suite/octave/li_std_pair.i branches/gsoc2008-maciekd/Examples/test-suite/octave/li_std_pair_runme.m branches/gsoc2008-maciekd/Examples/test-suite/octave/li_std_string.i branches/gsoc2008-maciekd/Examples/test-suite/octave/li_std_string_runme.m branches/gsoc2008-maciekd/Examples/test-suite/perl5/li_std_list.i branches/gsoc2008-maciekd/Examples/test-suite/php4/ branches/gsoc2008-maciekd/Examples/test-suite/php4/Makefile.in branches/gsoc2008-maciekd/Examples/test-suite/php4/abstract_inherit_ok_runme.php4 branches/gsoc2008-maciekd/Examples/test-suite/php4/abstract_inherit_runme.php4 branches/gsoc2008-maciekd/Examples/test-suite/php4/add_link_runme.php4 branches/gsoc2008-maciekd/Examples/test-suite/php4/argout_runme.php4 branches/gsoc2008-maciekd/Examples/test-suite/php4/arrayptr_runme.php4 branches/gsoc2008-maciekd/Examples/test-suite/php4/arrays_global_runme.php4 branches/gsoc2008-maciekd/Examples/test-suite/php4/arrays_global_twodim_runme.php4 branches/gsoc2008-maciekd/Examples/test-suite/php4/arrays_runme.php4 branches/gsoc2008-maciekd/Examples/test-suite/php4/arrays_scope_runme.php4 branches/gsoc2008-maciekd/Examples/test-suite/php4/casts_runme.php4 branches/gsoc2008-maciekd/Examples/test-suite/php4/class_ignore_runme.php4 branches/gsoc2008-maciekd/Examples/test-suite/php4/conversion_namespace_runme.php4 branches/gsoc2008-maciekd/Examples/test-suite/php4/conversion_ns_template_runme.php4 branches/gsoc2008-maciekd/Examples/test-suite/php4/conversion_runme.php4 branches/gsoc2008-maciekd/Examples/test-suite/php4/cpp_static_runme.php4 branches/gsoc2008-maciekd/Examples/test-suite/php4/enum_scope_template_runme.php4 branches/gsoc2008-maciekd/Examples/test-suite/php4/evil_diamond_ns_runme.php4 branches/gsoc2008-maciekd/Examples/test-suite/php4/evil_diamond_prop_runme.php4 branches/gsoc2008-maciekd/Examples/test-suite/php4/evil_diamond_runme.php4 branches/gsoc2008-maciekd/Examples/test-suite/php4/extend_template_ns_runme.php4 branches/gsoc2008-maciekd/Examples/test-suite/php4/extend_template_runme.php4 branches/gsoc2008-maciekd/Examples/test-suite/php4/grouping_runme.php4 branches/gsoc2008-maciekd/Examples/test-suite/php4/ignore_parameter_runme.php4 branches/gsoc2008-maciekd/Examples/test-suite/php4/li_carrays_runme.php4 branches/gsoc2008-maciekd/Examples/test-suite/php4/li_std_string_runme.php4 branches/gsoc2008-maciekd/Examples/test-suite/php4/namewarn_rename.i branches/gsoc2008-maciekd/Examples/test-suite/php4/rename_scope_runme.php4 branches/gsoc2008-maciekd/Examples/test-suite/php4/skel.php4 branches/gsoc2008-maciekd/Examples/test-suite/php4/smart_pointer_rename_runme.php4 branches/gsoc2008-maciekd/Examples/test-suite/php4/sym_runme.php4 branches/gsoc2008-maciekd/Examples/test-suite/php4/template_arg_typename_runme.php4 branches/gsoc2008-maciekd/Examples/test-suite/php4/template_construct_runme.php4 branches/gsoc2008-maciekd/Examples/test-suite/php4/tests.php4 branches/gsoc2008-maciekd/Examples/test-suite/php4/typedef_reference_runme.php4 branches/gsoc2008-maciekd/Examples/test-suite/php4/typemap_ns_using_runme.php4 branches/gsoc2008-maciekd/Examples/test-suite/php4/using1_runme.php4 branches/gsoc2008-maciekd/Examples/test-suite/php4/using2_runme.php4 branches/gsoc2008-maciekd/Examples/test-suite/php4/valuewrapper_base_runme.php4 branches/gsoc2008-maciekd/Examples/test-suite/python/argcargvtest.i branches/gsoc2008-maciekd/Examples/test-suite/python/autodoc.i branches/gsoc2008-maciekd/Examples/test-suite/python/callback.i branches/gsoc2008-maciekd/Examples/test-suite/python/complextest.i branches/gsoc2008-maciekd/Examples/test-suite/python/director_profile.i branches/gsoc2008-maciekd/Examples/test-suite/python/director_stl.i branches/gsoc2008-maciekd/Examples/test-suite/python/iadd.h branches/gsoc2008-maciekd/Examples/test-suite/python/iadd.i branches/gsoc2008-maciekd/Examples/test-suite/python/implicittest.i branches/gsoc2008-maciekd/Examples/test-suite/python/inout.i branches/gsoc2008-maciekd/Examples/test-suite/python/inplaceadd.i branches/gsoc2008-maciekd/Examples/test-suite/python/input.i branches/gsoc2008-maciekd/Examples/test-suite/python/kwargs.i branches/gsoc2008-maciekd/Examples/test-suite/python/kwargs_runme.py branches/gsoc2008-maciekd/Examples/test-suite/python/li_std_carray.i branches/gsoc2008-maciekd/Examples/test-suite/python/li_std_map.i branches/gsoc2008-maciekd/Examples/test-suite/python/li_std_pair.i branches/gsoc2008-maciekd/Examples/test-suite/python/li_std_pair_runme.py branches/gsoc2008-maciekd/Examples/test-suite/python/li_std_set.i branches/gsoc2008-maciekd/Examples/test-suite/python/li_std_stream.i branches/gsoc2008-maciekd/Examples/test-suite/python/li_std_string.i branches/gsoc2008-maciekd/Examples/test-suite/python/li_std_string_runme.py branches/gsoc2008-maciekd/Examples/test-suite/python/li_std_vector.i branches/gsoc2008-maciekd/Examples/test-suite/python/li_std_vector_runme.py branches/gsoc2008-maciekd/Examples/test-suite/python/li_std_vectora.i branches/gsoc2008-maciekd/Examples/test-suite/python/li_std_wstream.i branches/gsoc2008-maciekd/Examples/test-suite/python/li_std_wstring.i branches/gsoc2008-maciekd/Examples/test-suite/python/nondynamic.i branches/gsoc2008-maciekd/Examples/test-suite/python/nondynamic_runme.py branches/gsoc2008-maciekd/Examples/test-suite/python/overload_simple_cast.i branches/gsoc2008-maciekd/Examples/test-suite/python/overload_simple_cast_runme.py branches/gsoc2008-maciekd/Examples/test-suite/python/simutry.i branches/gsoc2008-maciekd/Examples/test-suite/python/std_containers.i branches/gsoc2008-maciekd/Examples/test-suite/python/swigobject.i branches/gsoc2008-maciekd/Examples/test-suite/python/tag_no_clash_with_variable_runme.i branches/gsoc2008-maciekd/Examples/test-suite/python/template_matrix.i branches/gsoc2008-maciekd/Examples/test-suite/python/vector.i branches/gsoc2008-maciekd/Examples/test-suite/r/copy_struct.i branches/gsoc2008-maciekd/Examples/test-suite/r/copy_struct_runme.R branches/gsoc2008-maciekd/Examples/test-suite/r/double_delete.i branches/gsoc2008-maciekd/Examples/test-suite/r/double_delete_runme.R branches/gsoc2008-maciekd/Examples/test-suite/r/legacy.i branches/gsoc2008-maciekd/Examples/test-suite/r/legacy_runme.R branches/gsoc2008-maciekd/Examples/test-suite/r/simple_array.i branches/gsoc2008-maciekd/Examples/test-suite/ruby/keywords.i branches/gsoc2008-maciekd/Examples/test-suite/ruby/keywords_runme.rb branches/gsoc2008-maciekd/Examples/test-suite/ruby/li_std_functors.i branches/gsoc2008-maciekd/Examples/test-suite/ruby/li_std_pair_lang_object.i branches/gsoc2008-maciekd/Examples/test-suite/ruby/li_std_queue.i branches/gsoc2008-maciekd/Examples/test-suite/ruby/li_std_speed.i branches/gsoc2008-maciekd/Examples/test-suite/ruby/li_std_speed_runme.rb branches/gsoc2008-maciekd/Examples/test-suite/ruby/li_std_stack.i branches/gsoc2008-maciekd/Examples/test-suite/ruby/naming.i branches/gsoc2008-maciekd/Examples/test-suite/ruby/naming_runme.rb branches/gsoc2008-maciekd/Examples/test-suite/ruby/stl_new.i branches/gsoc2008-maciekd/Examples/test-suite/ruby/track_objects.i branches/gsoc2008-maciekd/Examples/test-suite/ruby/track_objects_directors.i branches/gsoc2008-maciekd/Examples/test-suite/ruby/track_objects_directors_runme.rb branches/gsoc2008-maciekd/Examples/test-suite/ruby/track_objects_runme.rb branches/gsoc2008-maciekd/Examples/test-suite/tcl/union.i branches/gsoc2008-maciekd/Examples/test-suite/tcl/union_runme.tcl branches/gsoc2008-maciekd/Lib/php4/ branches/gsoc2008-maciekd/Lib/php4/const.i branches/gsoc2008-maciekd/Lib/php4/globalvar.i branches/gsoc2008-maciekd/Lib/php4/php4.swg branches/gsoc2008-maciekd/Lib/php4/php4init.swg branches/gsoc2008-maciekd/Lib/php4/php4kw.swg branches/gsoc2008-maciekd/Lib/php4/php4run.swg branches/gsoc2008-maciekd/Lib/php4/phppointers.i branches/gsoc2008-maciekd/Lib/php4/std_common.i branches/gsoc2008-maciekd/Lib/php4/std_deque.i branches/gsoc2008-maciekd/Lib/php4/std_map.i branches/gsoc2008-maciekd/Lib/php4/std_pair.i branches/gsoc2008-maciekd/Lib/php4/std_string.i branches/gsoc2008-maciekd/Lib/php4/std_vector.i branches/gsoc2008-maciekd/Lib/php4/stl.i branches/gsoc2008-maciekd/Lib/php4/typemaps.i branches/gsoc2008-maciekd/Lib/php4/utils.i branches/gsoc2008-maciekd/Source/Modules/php4.cxx branches/gsoc2008-maciekd/Tools/config/config.guess branches/gsoc2008-maciekd/Tools/config/config.sub Removed Paths: ------------- branches/gsoc2008-maciekd/CCache/COPYING branches/gsoc2008-maciekd/CCache/Makefile.in branches/gsoc2008-maciekd/CCache/README branches/gsoc2008-maciekd/CCache/README.swig branches/gsoc2008-maciekd/CCache/args.c branches/gsoc2008-maciekd/CCache/ccache.c branches/gsoc2008-maciekd/CCache/ccache.h branches/gsoc2008-maciekd/CCache/ccache.yo branches/gsoc2008-maciekd/CCache/ccache_swig_config.h.in branches/gsoc2008-maciekd/CCache/cleanup.c branches/gsoc2008-maciekd/CCache/configure.in branches/gsoc2008-maciekd/CCache/debian/NEWS branches/gsoc2008-maciekd/CCache/debian/README.Debian branches/gsoc2008-maciekd/CCache/debian/changelog branches/gsoc2008-maciekd/CCache/debian/compat branches/gsoc2008-maciekd/CCache/debian/control branches/gsoc2008-maciekd/CCache/debian/copyright branches/gsoc2008-maciekd/CCache/debian/dirs branches/gsoc2008-maciekd/CCache/debian/docs branches/gsoc2008-maciekd/CCache/debian/examples branches/gsoc2008-maciekd/CCache/debian/patches/01_no_home.diff branches/gsoc2008-maciekd/CCache/debian/patches/02_ccache-compressed.diff branches/gsoc2008-maciekd/CCache/debian/patches/03_long_options.diff branches/gsoc2008-maciekd/CCache/debian/patches/04_ignore_profile.diff branches/gsoc2008-maciekd/CCache/debian/patches/05_nfs_fix.diff branches/gsoc2008-maciekd/CCache/debian/patches/06_md.diff branches/gsoc2008-maciekd/CCache/debian/patches/07_cachedirtag.diff branches/gsoc2008-maciekd/CCache/debian/patches/08_manpage_hyphens.diff branches/gsoc2008-maciekd/CCache/debian/patches/09_respect_ldflags.diff branches/gsoc2008-maciekd/CCache/debian/patches/10_lru_cleanup.diff branches/gsoc2008-maciekd/CCache/debian/patches/11_utimes.diff branches/gsoc2008-maciekd/CCache/debian/patches/12_cachesize_permissions.diff branches/gsoc2008-maciekd/CCache/debian/patches/13_html_links.diff branches/gsoc2008-maciekd/CCache/debian/patches/14_hardlink_doc.diff branches/gsoc2008-maciekd/CCache/debian/patches/CREDITS branches/gsoc2008-maciekd/CCache/debian/rules branches/gsoc2008-maciekd/CCache/debian/update-ccache branches/gsoc2008-maciekd/CCache/debian/watch branches/gsoc2008-maciekd/CCache/execute.c branches/gsoc2008-maciekd/CCache/hash.c branches/gsoc2008-maciekd/CCache/install-sh branches/gsoc2008-maciekd/CCache/mdfour.c branches/gsoc2008-maciekd/CCache/mdfour.h branches/gsoc2008-maciekd/CCache/packaging/README branches/gsoc2008-maciekd/CCache/packaging/ccache.spec branches/gsoc2008-maciekd/CCache/snprintf.c branches/gsoc2008-maciekd/CCache/stats.c branches/gsoc2008-maciekd/CCache/test.sh branches/gsoc2008-maciekd/CCache/unify.c branches/gsoc2008-maciekd/CCache/util.c branches/gsoc2008-maciekd/CCache/web/index.html branches/gsoc2008-maciekd/Examples/GIFPlot/Java/full/runme.java branches/gsoc2008-maciekd/Examples/GIFPlot/Java/shadow/runme.java branches/gsoc2008-maciekd/Examples/GIFPlot/Java/simple/runme.java branches/gsoc2008-maciekd/Examples/GIFPlot/Php/check.list branches/gsoc2008-maciekd/Examples/GIFPlot/Php/full/Makefile branches/gsoc2008-maciekd/Examples/GIFPlot/Php/full/README branches/gsoc2008-maciekd/Examples/GIFPlot/Php/full/cmap branches/gsoc2008-maciekd/Examples/GIFPlot/Php/full/gifplot.i branches/gsoc2008-maciekd/Examples/GIFPlot/Php/full/runme.php branches/gsoc2008-maciekd/Examples/GIFPlot/Php/shadow/Makefile branches/gsoc2008-maciekd/Examples/GIFPlot/Php/shadow/README branches/gsoc2008-maciekd/Examples/GIFPlot/Php/shadow/cmap branches/gsoc2008-maciekd/Examples/GIFPlot/Php/shadow/runme.php branches/gsoc2008-maciekd/Examples/GIFPlot/Php/simple/Makefile branches/gsoc2008-maciekd/Examples/GIFPlot/Php/simple/README branches/gsoc2008-maciekd/Examples/GIFPlot/Php/simple/runme.php branches/gsoc2008-maciekd/Examples/GIFPlot/Php/simple/simple.i branches/gsoc2008-maciekd/Examples/csharp/arrays/Makefile branches/gsoc2008-maciekd/Examples/csharp/arrays/example.c branches/gsoc2008-maciekd/Examples/csharp/arrays/example.h branches/gsoc2008-maciekd/Examples/csharp/arrays/example.i branches/gsoc2008-maciekd/Examples/csharp/arrays/runme.cs branches/gsoc2008-maciekd/Examples/java/callback/runme.java branches/gsoc2008-maciekd/Examples/java/class/runme.java branches/gsoc2008-maciekd/Examples/java/constants/runme.java branches/gsoc2008-maciekd/Examples/java/enum/runme.java branches/gsoc2008-maciekd/Examples/java/extend/runme.java branches/gsoc2008-maciekd/Examples/java/funcptr/runme.java branches/gsoc2008-maciekd/Examples/java/multimap/runme.java branches/gsoc2008-maciekd/Examples/java/native/runme.java branches/gsoc2008-maciekd/Examples/java/pointer/runme.java branches/gsoc2008-maciekd/Examples/java/reference/runme.java branches/gsoc2008-maciekd/Examples/java/simple/runme.java branches/gsoc2008-maciekd/Examples/java/template/runme.java branches/gsoc2008-maciekd/Examples/java/typemap/runme.java branches/gsoc2008-maciekd/Examples/java/variables/runme.java branches/gsoc2008-maciekd/Examples/php/check.list branches/gsoc2008-maciekd/Examples/php/class/Makefile branches/gsoc2008-maciekd/Examples/php/class/example.cxx branches/gsoc2008-maciekd/Examples/php/class/example.h branches/gsoc2008-maciekd/Examples/php/class/example.i branches/gsoc2008-maciekd/Examples/php/class/runme.php branches/gsoc2008-maciekd/Examples/php/constants/Makefile branches/gsoc2008-maciekd/Examples/php/constants/example.i branches/gsoc2008-maciekd/Examples/php/constants/runme.php branches/gsoc2008-maciekd/Examples/php/cpointer/Makefile branches/gsoc2008-maciekd/Examples/php/cpointer/example.c branches/gsoc2008-maciekd/Examples/php/cpointer/example.i branches/gsoc2008-maciekd/Examples/php/cpointer/runme.php branches/gsoc2008-maciekd/Examples/php/disown/Makefile branches/gsoc2008-maciekd/Examples/php/disown/example.cxx branches/gsoc2008-maciekd/Examples/php/disown/example.h branches/gsoc2008-maciekd/Examples/php/disown/example.i branches/gsoc2008-maciekd/Examples/php/disown/runme.php branches/gsoc2008-maciekd/Examples/php/enum/Makefile branches/gsoc2008-maciekd/Examples/php/enum/example.cxx branches/gsoc2008-maciekd/Examples/php/enum/example.h branches/gsoc2008-maciekd/Examples/php/enum/example.i branches/gsoc2008-maciekd/Examples/php/enum/runme.php branches/gsoc2008-maciekd/Examples/php/funcptr/Makefile branches/gsoc2008-maciekd/Examples/php/funcptr/example.c branches/gsoc2008-maciekd/Examples/php/funcptr/example.h branches/gsoc2008-maciekd/Examples/php/funcptr/example.i branches/gsoc2008-maciekd/Examples/php/funcptr/runme.php branches/gsoc2008-maciekd/Examples/php/overloading/Makefile branches/gsoc2008-maciekd/Examples/php/overloading/example.cxx branches/gsoc2008-maciekd/Examples/php/overloading/example.h branches/gsoc2008-maciekd/Examples/php/overloading/example.i branches/gsoc2008-maciekd/Examples/php/overloading/runme.php branches/gsoc2008-maciekd/Examples/php/pointer/Makefile branches/gsoc2008-maciekd/Examples/php/pointer/example.c branches/gsoc2008-maciekd/Examples/php/pointer/example.i branches/gsoc2008-maciekd/Examples/php/pointer/runme.php branches/gsoc2008-maciekd/Examples/php/pragmas/Makefile branches/gsoc2008-maciekd/Examples/php/pragmas/example.i branches/gsoc2008-maciekd/Examples/php/pragmas/include.php branches/gsoc2008-maciekd/Examples/php/pragmas/runme.php branches/gsoc2008-maciekd/Examples/php/proxy/Makefile branches/gsoc2008-maciekd/Examples/php/proxy/example.cxx branches/gsoc2008-maciekd/Examples/php/proxy/example.h branches/gsoc2008-maciekd/Examples/php/proxy/example.i branches/gsoc2008-maciekd/Examples/php/proxy/runme.php branches/gsoc2008-maciekd/Examples/php/reference/Makefile branches/gsoc2008-maciekd/Examples/php/reference/example.cxx branches/gsoc2008-maciekd/Examples/php/reference/example.h branches/gsoc2008-maciekd/Examples/php/reference/example.i branches/gsoc2008-maciekd/Examples/php/reference/runme-proxy.php4 branches/gsoc2008-maciekd/Examples/php/reference/runme.php branches/gsoc2008-maciekd/Examples/php/simple/Makefile branches/gsoc2008-maciekd/Examples/php/simple/example.c branches/gsoc2008-maciekd/Examples/php/simple/example.i branches/gsoc2008-maciekd/Examples/php/simple/runme.php branches/gsoc2008-maciekd/Examples/php/sync/Makefile branches/gsoc2008-maciekd/Examples/php/sync/example.cxx branches/gsoc2008-maciekd/Examples/php/sync/example.h branches/gsoc2008-maciekd/Examples/php/sync/example.i branches/gsoc2008-maciekd/Examples/php/sync/runme.php branches/gsoc2008-maciekd/Examples/php/value/Makefile branches/gsoc2008-maciekd/Examples/php/value/example.c branches/gsoc2008-maciekd/Examples/php/value/example.h branches/gsoc2008-maciekd/Examples/php/value/example.i branches/gsoc2008-maciekd/Examples/php/value/runme.php branches/gsoc2008-maciekd/Examples/php/variables/Makefile branches/gsoc2008-maciekd/Examples/php/variables/example.c branches/gsoc2008-maciekd/Examples/php/variables/example.h branches/gsoc2008-maciekd/Examples/php/variables/example.i branches/gsoc2008-maciekd/Examples/php/variables/runme.php branches/gsoc2008-maciekd/Examples/php/variables/runme.php4.old branches/gsoc2008-maciekd/Examples/test-suite/argcargvtest.i branches/gsoc2008-maciekd/Examples/test-suite/callback.i branches/gsoc2008-maciekd/Examples/test-suite/chicken/chicken_ext_test_runme.ss branches/gsoc2008-maciekd/Examples/test-suite/chicken_ext_test.i branches/gsoc2008-maciekd/Examples/test-suite/complextest.i branches/gsoc2008-maciekd/Examples/test-suite/csharp/csharp_lib_arrays_runme.cs branches/gsoc2008-maciekd/Examples/test-suite/csharp/director_basic_runme.cs branches/gsoc2008-maciekd/Examples/test-suite/csharp/li_attribute_runme.cs branches/gsoc2008-maciekd/Examples/test-suite/csharp_lib_arrays.i branches/gsoc2008-maciekd/Examples/test-suite/director_profile.i branches/gsoc2008-maciekd/Examples/test-suite/director_protected_overloaded.i branches/gsoc2008-maciekd/Examples/test-suite/director_stl.i branches/gsoc2008-maciekd/Examples/test-suite/global_namespace.i branches/gsoc2008-maciekd/Examples/test-suite/guilescm/guilescm_ext_test_runme.scm branches/gsoc2008-maciekd/Examples/test-suite/guilescm_ext_test.i branches/gsoc2008-maciekd/Examples/test-suite/iadd.i branches/gsoc2008-maciekd/Examples/test-suite/implicittest.i branches/gsoc2008-maciekd/Examples/test-suite/inout.i branches/gsoc2008-maciekd/Examples/test-suite/inplaceadd.i branches/gsoc2008-maciekd/Examples/test-suite/input.i branches/gsoc2008-maciekd/Examples/test-suite/insert_directive.i branches/gsoc2008-maciekd/Examples/test-suite/java/global_namespace_runme.java branches/gsoc2008-maciekd/Examples/test-suite/java/li_boost_intrusive_ptr_runme.java branches/gsoc2008-maciekd/Examples/test-suite/li_boost_intrusive_ptr.i branches/gsoc2008-maciekd/Examples/test-suite/li_std_carray.i branches/gsoc2008-maciekd/Examples/test-suite/li_std_functors.i branches/gsoc2008-maciekd/Examples/test-suite/li_std_list.i branches/gsoc2008-maciekd/Examples/test-suite/li_std_pair_extra.i branches/gsoc2008-maciekd/Examples/test-suite/li_std_pair_lang_object.i branches/gsoc2008-maciekd/Examples/test-suite/li_std_queue.i branches/gsoc2008-maciekd/Examples/test-suite/li_std_stack.i branches/gsoc2008-maciekd/Examples/test-suite/li_std_string_extra.i branches/gsoc2008-maciekd/Examples/test-suite/li_std_vector_extra.i branches/gsoc2008-maciekd/Examples/test-suite/li_std_vector_ptr.i branches/gsoc2008-maciekd/Examples/test-suite/li_std_vectora.i branches/gsoc2008-maciekd/Examples/test-suite/li_std_wstream.i branches/gsoc2008-maciekd/Examples/test-suite/nested_structs.i branches/gsoc2008-maciekd/Examples/test-suite/octave/li_std_pair_extra_runme.m branches/gsoc2008-maciekd/Examples/test-suite/octave/li_std_string_extra_runme.m branches/gsoc2008-maciekd/Examples/test-suite/octave/octave_cell_deref_runme.m branches/gsoc2008-maciekd/Examples/test-suite/octave_cell_deref.i branches/gsoc2008-maciekd/Examples/test-suite/operbool.i branches/gsoc2008-maciekd/Examples/test-suite/packageoption_c.i branches/gsoc2008-maciekd/Examples/test-suite/php/Makefile.in branches/gsoc2008-maciekd/Examples/test-suite/php/abstract_inherit_ok_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/abstract_inherit_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/add_link_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/argout_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/arrayptr_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/arrays_global_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/arrays_global_twodim_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/arrays_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/arrays_scope_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/casts_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/class_ignore_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/conversion_namespace_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/conversion_ns_template_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/conversion_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/cpp_static_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/enum_scope_template_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/evil_diamond_ns_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/evil_diamond_prop_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/evil_diamond_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/extend_template_ns_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/extend_template_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/grouping_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/ignore_parameter_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/li_carrays_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/li_std_string_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/rename_scope_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/skel.php branches/gsoc2008-maciekd/Examples/test-suite/php/smart_pointer_rename_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/sym_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/template_arg_typename_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/template_construct_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/tests.php branches/gsoc2008-maciekd/Examples/test-suite/php/typedef_reference_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/typemap_ns_using_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/using1_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/using2_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php/valuewrapper_base_runme.php branches/gsoc2008-maciekd/Examples/test-suite/php_namewarn_rename.i branches/gsoc2008-maciekd/Examples/test-suite/python/cpp_static_runme.py branches/gsoc2008-maciekd/Examples/test-suite/python/li_std_pair_extra_runme.py branches/gsoc2008-maciekd/Examples/test-suite/python/li_std_string_extra_runme.py branches/gsoc2008-maciekd/Examples/test-suite/python/li_std_vector_extra_runme.py branches/gsoc2008-maciekd/Examples/test-suite/python/li_std_vector_ptr_runme.py branches/gsoc2008-maciekd/Examples/test-suite/python/operbool_runme.py branches/gsoc2008-maciekd/Examples/test-suite/python/python_abstractbase_runme3.py branches/gsoc2008-maciekd/Examples/test-suite/python/python_append_runme.py branches/gsoc2008-maciekd/Examples/test-suite/python/python_kwargs_runme.py branches/gsoc2008-maciekd/Examples/test-suite/python/python_nondynamic_runme.py branches/gsoc2008-maciekd/Examples/test-suite/python/python_overload_simple_cast_runme.py branches/gsoc2008-maciekd/Examples/test-suite/python/python_pybuf_runme3.py branches/gsoc2008-maciekd/Examples/test-suite/python/rename_strip_encoder_runme.py branches/gsoc2008-maciekd/Examples/test-suite/python_abstractbase.i branches/gsoc2008-maciekd/Examples/test-suite/python_append.i branches/gsoc2008-maciekd/Examples/test-suite/python_autodoc.i branches/gsoc2008-maciekd/Examples/test-suite/python_kwargs.i branches/gsoc2008-maciekd/Examples/test-suite/python_nondynamic.i branches/gsoc2008-maciekd/Examples/test-suite/python_overload_simple_cast.i branches/gsoc2008-maciekd/Examples/test-suite/python_pybuf.i branches/gsoc2008-maciekd/Examples/test-suite/r/arrays_dimensionless_runme.R branches/gsoc2008-maciekd/Examples/test-suite/r/integers_runme.R branches/gsoc2008-maciekd/Examples/test-suite/r/r_copy_struct_runme.R branches/gsoc2008-maciekd/Examples/test-suite/r/r_double_delete_runme.R branches/gsoc2008-maciekd/Examples/test-suite/r/r_legacy_runme.R branches/gsoc2008-maciekd/Examples/test-suite/r_copy_struct.i branches/gsoc2008-maciekd/Examples/test-suite/r_double_delete.i branches/gsoc2008-maciekd/Examples/test-suite/r_legacy.i branches/gsoc2008-maciekd/Examples/test-suite/rename_strip_encoder.i branches/gsoc2008-maciekd/Examples/test-suite/ruby/ruby_keywords_runme.rb branches/gsoc2008-maciekd/Examples/test-suite/ruby/ruby_li_std_speed_runme.rb branches/gsoc2008-maciekd/Examples/test-suite/ruby/ruby_naming_runme.rb branches/gsoc2008-maciekd/Examples/test-suite/ruby/ruby_track_objects_directors_runme.rb branches/gsoc2008-maciekd/Examples/test-suite/ruby/ruby_track_objects_runme.rb branches/gsoc2008-maciekd/Examples/test-suite/ruby_keywords.i branches/gsoc2008-maciekd/Examples/test-suite/ruby_li_std_speed.i branches/gsoc2008-maciekd/Examples/test-suite/ruby_naming.i branches/gsoc2008-maciekd/Examples/test-suite/ruby_track_objects.i branches/gsoc2008-maciekd/Examples/test-suite/ruby_track_objects_directors.i branches/gsoc2008-maciekd/Examples/test-suite/simple_array.i branches/gsoc2008-maciekd/Examples/test-suite/simutry.i branches/gsoc2008-maciekd/Examples/test-suite/stl_new.i branches/gsoc2008-maciekd/Examples/test-suite/swigobject.i branches/gsoc2008-maciekd/Examples/test-suite/tcl/union_parameter_runme.tcl branches/gsoc2008-maciekd/Examples/test-suite/template_matrix.i branches/gsoc2008-maciekd/Examples/test-suite/union_parameter.i branches/gsoc2008-maciekd/Lib/csharp/arrays_csharp.i branches/gsoc2008-maciekd/Lib/intrusive_ptr.i branches/gsoc2008-maciekd/Lib/java/boost_intrusive_ptr.i branches/gsoc2008-maciekd/Lib/php/const.i branches/gsoc2008-maciekd/Lib/php/globalvar.i branches/gsoc2008-maciekd/Lib/php/php.swg branches/gsoc2008-maciekd/Lib/php/phpinit.swg branches/gsoc2008-maciekd/Lib/php/phpkw.swg branches/gsoc2008-maciekd/Lib/php/phppointers.i branches/gsoc2008-maciekd/Lib/php/phprun.swg branches/gsoc2008-maciekd/Lib/php/std_common.i branches/gsoc2008-maciekd/Lib/php/std_deque.i branches/gsoc2008-maciekd/Lib/php/std_map.i branches/gsoc2008-maciekd/Lib/php/std_pair.i branches/gsoc2008-maciekd/Lib/php/std_string.i branches/gsoc2008-maciekd/Lib/php/std_vector.i branches/gsoc2008-maciekd/Lib/php/stl.i branches/gsoc2008-maciekd/Lib/php/typemaps.i branches/gsoc2008-maciekd/Lib/php/utils.i branches/gsoc2008-maciekd/Lib/python/pyabc.i branches/gsoc2008-maciekd/Lib/python/pybuffer.i branches/gsoc2008-maciekd/Lib/python/pyname_compat.i branches/gsoc2008-maciekd/Source/Modules/php.cxx branches/gsoc2008-maciekd/Tools/pyname_patch.py Property Changed: ---------------- branches/gsoc2008-maciekd/Doc/Manual/Allegrocl.html branches/gsoc2008-maciekd/Doc/Manual/swig16.png branches/gsoc2008-maciekd/Examples/guile/matrix/matrix.scm branches/gsoc2008-maciekd/Examples/pike/class/Makefile branches/gsoc2008-maciekd/Examples/pike/class/example.cxx branches/gsoc2008-maciekd/Examples/pike/class/example.h branches/gsoc2008-maciekd/Examples/pike/class/example.i branches/gsoc2008-maciekd/Examples/pike/constants/Makefile branches/gsoc2008-maciekd/Examples/pike/constants/exa... [truncated message content] |
From: <wsf...@us...> - 2012-05-07 17:01:26
|
Revision: 13037 http://swig.svn.sourceforge.net/swig/?rev=13037&view=rev Author: wsfulton Date: 2012-05-07 17:01:20 +0000 (Mon, 07 May 2012) Log Message: ----------- Remove GIFPlot C Examples From: William S Fulton <ws...@fu...> Removed Paths: ------------- branches/gsoc2008-maciekd/Examples/GIFPlot/C/Makefile branches/gsoc2008-maciekd/Examples/GIFPlot/C/gifplot.i Property Changed: ---------------- branches/gsoc2008-maciekd/ Deleted: branches/gsoc2008-maciekd/Examples/GIFPlot/C/Makefile =================================================================== --- branches/gsoc2008-maciekd/Examples/GIFPlot/C/Makefile 2012-05-07 16:59:38 UTC (rev 13036) +++ branches/gsoc2008-maciekd/Examples/GIFPlot/C/Makefile 2012-05-07 17:01:20 UTC (rev 13037) @@ -1,17 +0,0 @@ -TOP = ../.. -SWIG = $(TOP)/../preinst-swig -SWIGOPT = -I../Include -SRCS = -TARGET = gifplot -INTERFACE = gifplot.i -LIBS = -L.. -lgifplot -INCLUDES = -I../Include - -all:: - $(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' LIBS='$(LIBS)' \ - SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' c - -clean: - rm -f *.o *.out *.so *.a *.dll *.dylib *.exe *_wrap* *_proxy* *~ runme - -check: all Deleted: branches/gsoc2008-maciekd/Examples/GIFPlot/C/gifplot.i =================================================================== --- branches/gsoc2008-maciekd/Examples/GIFPlot/C/gifplot.i 2012-05-07 16:59:38 UTC (rev 13036) +++ branches/gsoc2008-maciekd/Examples/GIFPlot/C/gifplot.i 2012-05-07 17:01:20 UTC (rev 13037) @@ -1,15 +0,0 @@ -/* Oh what the heck, let's just grab the whole darn header file - and see what happens. */ - -%module gifplot -%{ - -/* Note: You still need this part because the %include directive - merely causes SWIG to interpret the contents of a file. It doesn't - include the right include headers for the resulting C code */ - -#include "../Include/gifplot.h" - -%} - -%include gifplot.h This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wsf...@us...> - 2012-05-07 17:01:46
|
Revision: 13038 http://swig.svn.sourceforge.net/swig/?rev=13038&view=rev Author: wsfulton Date: 2012-05-07 17:01:40 +0000 (Mon, 07 May 2012) Log Message: ----------- Re-apply c.cxx changes from r11187 From: William S Fulton <ws...@fu...> Revision Links: -------------- http://swig.svn.sourceforge.net/swig/?rev=11187&view=rev Modified Paths: -------------- branches/gsoc2008-maciekd/Source/Modules/c.cxx Property Changed: ---------------- branches/gsoc2008-maciekd/ Modified: branches/gsoc2008-maciekd/Source/Modules/c.cxx =================================================================== --- branches/gsoc2008-maciekd/Source/Modules/c.cxx 2012-05-07 17:01:20 UTC (rev 13037) +++ branches/gsoc2008-maciekd/Source/Modules/c.cxx 2012-05-07 17:01:40 UTC (rev 13038) @@ -12,6 +12,20 @@ #include <ctype.h> #include "swigmod.h" +int SwigType_isbuiltin(SwigType *t) { + const char* builtins[] = { "void", "short", "int", "long", "char", "float", "double", "bool", 0 }; + int i = 0; + char *c = Char(t); + if (!t) + return 0; + while (builtins[i]) { + if (strcmp(c, builtins[i]) == 0) + return 1; + i++; + } + return 0; +} + class C:public Language { static const char *usage; @@ -150,7 +164,7 @@ String *outfile = Getattr(n, "outfile"); // initialize I/O - f_runtime = NewFile(outfile, "w"); + f_runtime = NewFile(outfile, "w", SWIG_output_files()); if (!f_runtime) { FileErrorDisplay(outfile); SWIG_exit(EXIT_FAILURE); @@ -170,13 +184,13 @@ // create proxy files with appropriate name String *proxy_code_filename = NewStringf("%s%s_proxy.c", SWIG_output_directory(), Char(module)); - if ((f_proxy_c = NewFile(proxy_code_filename, "w")) == 0) { + if ((f_proxy_c = NewFile(proxy_code_filename, "w", SWIG_output_files())) == 0) { FileErrorDisplay(proxy_code_filename); SWIG_exit(EXIT_FAILURE); } String *proxy_header_filename = NewStringf("%s%s_proxy.h", SWIG_output_directory(), Char(module)); - if ((f_proxy_h = NewFile(proxy_header_filename, "w")) == 0) { + if ((f_proxy_h = NewFile(proxy_header_filename, "w", SWIG_output_files())) == 0) { FileErrorDisplay(proxy_header_filename); SWIG_exit(EXIT_FAILURE); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wsf...@us...> - 2012-05-07 17:02:06
|
Revision: 13039 http://swig.svn.sourceforge.net/swig/?rev=13039&view=rev Author: wsfulton Date: 2012-05-07 17:02:00 +0000 (Mon, 07 May 2012) Log Message: ----------- Compile time fixes for C module since merge from trunk From: William S Fulton <ws...@fu...> Modified Paths: -------------- branches/gsoc2008-maciekd/Source/Modules/c.cxx Property Changed: ---------------- branches/gsoc2008-maciekd/ Modified: branches/gsoc2008-maciekd/Source/Modules/c.cxx =================================================================== --- branches/gsoc2008-maciekd/Source/Modules/c.cxx 2012-05-07 17:01:40 UTC (rev 13038) +++ branches/gsoc2008-maciekd/Source/Modules/c.cxx 2012-05-07 17:02:00 UTC (rev 13039) @@ -1100,7 +1100,7 @@ Setattr(n, "c:stype", stype); // modify the constructor name - constr_name = Swig_name_construct(newclassname); + constr_name = Swig_name_construct(NSPACE_TODO, newclassname); Setattr(n, "name", constr_name); Setattr(n, "sym:name", constr_name); @@ -1157,7 +1157,7 @@ Setattr(n, "c:stype", stype); // modify the constructor name - constr_name = Swig_name_copyconstructor(newclassname); + constr_name = Swig_name_copyconstructor(NSPACE_TODO, newclassname); Setattr(n, "name", constr_name); Setattr(n, "sym:name", constr_name); @@ -1205,7 +1205,7 @@ Printf(sobj_name, "SwigObj"); ctype = Copy(sobj_name); SwigType_add_pointer(ctype); - p = NewParm(ctype, "self"); + p = NewParm(ctype, "self", n); Setattr(p, "lname", "arg1"); stype = Copy(newclassname); SwigType_add_pointer(stype); @@ -1215,7 +1215,7 @@ Setattr(n, "type", "void"); // modify the destructor name - destr_name = Swig_name_destroy(newclassname); + destr_name = Swig_name_destroy(NSPACE_TODO, newclassname); Setattr(n, "sym:name", destr_name); // create action code This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wsf...@us...> - 2012-05-07 17:02:27
|
Revision: 13040 http://swig.svn.sourceforge.net/swig/?rev=13040&view=rev Author: wsfulton Date: 2012-05-07 17:02:21 +0000 (Mon, 07 May 2012) Log Message: ----------- Add some changes that are needed in all modules for the runtime banner From: William S Fulton <ws...@fu...> Modified Paths: -------------- branches/gsoc2008-maciekd/Source/Modules/c.cxx Property Changed: ---------------- branches/gsoc2008-maciekd/ Modified: branches/gsoc2008-maciekd/Source/Modules/c.cxx =================================================================== --- branches/gsoc2008-maciekd/Source/Modules/c.cxx 2012-05-07 17:02:00 UTC (rev 13039) +++ branches/gsoc2008-maciekd/Source/Modules/c.cxx 2012-05-07 17:02:21 UTC (rev 13040) @@ -164,8 +164,8 @@ String *outfile = Getattr(n, "outfile"); // initialize I/O - f_runtime = NewFile(outfile, "w", SWIG_output_files()); - if (!f_runtime) { + f_begin = NewFile(outfile, "w", SWIG_output_files()); + if (!f_begin) { FileErrorDisplay(outfile); SWIG_exit(EXIT_FAILURE); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |