From: <wsf...@us...> - 2008-12-29 00:11:53
|
Revision: 11011 http://swig.svn.sourceforge.net/swig/?rev=11011&view=rev Author: wsfulton Date: 2008-12-29 00:11:51 +0000 (Mon, 29 Dec 2008) Log Message: ----------- Compiler warning fix in Perl out typemap for std::vector Modified Paths: -------------- trunk/Examples/test-suite/ignore_template_constructor.i trunk/Lib/perl5/std_vector.i Modified: trunk/Examples/test-suite/ignore_template_constructor.i =================================================================== --- trunk/Examples/test-suite/ignore_template_constructor.i 2008-12-28 20:36:21 UTC (rev 11010) +++ trunk/Examples/test-suite/ignore_template_constructor.i 2008-12-29 00:11:51 UTC (rev 11011) @@ -37,3 +37,9 @@ #endif %template(VectFlow) std::vector<Flow>; + +%inline %{ +std::vector<Flow> inandout(std::vector<Flow> v) { + return v; +} +%} Modified: trunk/Lib/perl5/std_vector.i =================================================================== --- trunk/Lib/perl5/std_vector.i 2008-12-28 20:36:21 UTC (rev 11010) +++ trunk/Lib/perl5/std_vector.i 2008-12-29 00:11:51 UTC (rev 11011) @@ -105,9 +105,9 @@ } } %typemap(out) vector<T> { - int len = $1.size(); + size_t len = $1.size(); SV **svs = new SV*[len]; - for (unsigned int i=0; i<len; i++) { + for (size_t i=0; i<len; i++) { T* ptr = new T($1[i]); svs[i] = sv_newmortal(); SWIG_MakePtr(svs[i], (void*) ptr, This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wsf...@us...> - 2008-12-30 00:38:37
|
Revision: 11018 http://swig.svn.sourceforge.net/swig/?rev=11018&view=rev Author: wsfulton Date: 2008-12-30 00:38:34 +0000 (Tue, 30 Dec 2008) Log Message: ----------- All languages now define a macro in the generated C/C++ wrapper file indicating which language is being wrapped, eg #define SWIGJAVA Modified Paths: -------------- trunk/CHANGES.current trunk/Doc/Manual/Preprocessor.html trunk/Source/Modules/allegrocl.cxx trunk/Source/Modules/cffi.cxx trunk/Source/Modules/chicken.cxx trunk/Source/Modules/csharp.cxx trunk/Source/Modules/guile.cxx trunk/Source/Modules/java.cxx trunk/Source/Modules/lua.cxx trunk/Source/Modules/modula3.cxx trunk/Source/Modules/mzscheme.cxx trunk/Source/Modules/ocaml.cxx trunk/Source/Modules/octave.cxx trunk/Source/Modules/perl5.cxx trunk/Source/Modules/php.cxx trunk/Source/Modules/pike.cxx trunk/Source/Modules/python.cxx trunk/Source/Modules/r.cxx trunk/Source/Modules/ruby.cxx trunk/Source/Modules/tcl8.cxx Modified: trunk/CHANGES.current =================================================================== --- trunk/CHANGES.current 2008-12-29 23:56:03 UTC (rev 11017) +++ trunk/CHANGES.current 2008-12-30 00:38:34 UTC (rev 11018) @@ -1,6 +1,12 @@ Version 1.3.37 (in progress) ============================ +2008-12-30: wsfulton + Bug #2430756. All the languages now define a macro in the generated C/C++ + wrapper file indicating which language is being wrapped. The macro name is the + same as those defined when SWIG is run, eg SWIGJAVA, SWIGOCTAVE, SWIGCSHARP etc + and are listed in the "Conditional Compilation" section in the documentation. + 2008-12-23: wsfulton [Java] Fix #2153773 - %nojavaexception was clearing the exception feature instead of disabling it. Clearing checked Java exceptions also didn't work. Modified: trunk/Doc/Manual/Preprocessor.html =================================================================== --- trunk/Doc/Manual/Preprocessor.html 2008-12-29 23:56:03 UTC (rev 11017) +++ trunk/Doc/Manual/Preprocessor.html 2008-12-30 00:38:34 UTC (rev 11018) @@ -107,7 +107,10 @@ SWIG_VERSION Hexadecimal number containing SWIG version, such as 0x010311 (corresponding to SWIG-1.3.11). +SWIGALLEGROCL Defined when using Allegro CL +SWIGCFFI Defined when using CFFI SWIGCHICKEN Defined when using CHICKEN +SWIGCLISP Defined when using CLISP SWIGCSHARP Defined when using C# SWIGGUILE Defined when using Guile SWIGJAVA Defined when using Java @@ -115,12 +118,14 @@ SWIGMODULA3 Defined when using Modula-3 SWIGMZSCHEME Defined when using Mzscheme SWIGOCAML Defined when using Ocaml +SWIGOCTAVE Defined when using Octave SWIGPERL Defined when using Perl SWIGPERL5 Defined when using Perl5 SWIGPHP Defined when using PHP SWIGPHP5 Defined when using PHP5 SWIGPIKE Defined when using Pike SWIGPYTHON Defined when using Python +SWIGR Defined when using R SWIGRUBY Defined when using Ruby SWIGSEXP Defined when using S-expressions SWIGTCL Defined when using Tcl Modified: trunk/Source/Modules/allegrocl.cxx =================================================================== --- trunk/Source/Modules/allegrocl.cxx 2008-12-29 23:56:03 UTC (rev 11017) +++ trunk/Source/Modules/allegrocl.cxx 2008-12-30 00:38:34 UTC (rev 11018) @@ -1618,6 +1618,10 @@ Swig_register_filebyname("lisphead", f_cl); Swig_banner(f_runtime); + + Printf(f_runtime, "#define SWIGALLEGROCL\n"); + Printf(f_runtime, "\n"); + Swig_banner_target_lang(f_cl, ";;"); Printf(f_cl, "\n" Modified: trunk/Source/Modules/cffi.cxx =================================================================== --- trunk/Source/Modules/cffi.cxx 2008-12-29 23:56:03 UTC (rev 11017) +++ trunk/Source/Modules/cffi.cxx 2008-12-30 00:38:34 UTC (rev 11018) @@ -162,6 +162,10 @@ Swig_register_filebyname("swiglisp", f_null); Swig_banner(f_runtime); + + Printf(f_runtime, "#define SWIGCFFI\n"); + Printf(f_runtime, "\n"); + Swig_banner_target_lang(f_lisp, ";;;"); Language::top(n); Modified: trunk/Source/Modules/chicken.cxx =================================================================== --- trunk/Source/Modules/chicken.cxx 2008-12-29 23:56:03 UTC (rev 11017) +++ trunk/Source/Modules/chicken.cxx 2008-12-30 00:38:34 UTC (rev 11018) @@ -217,11 +217,13 @@ Swig_banner(f_runtime); - Printf(f_runtime, "/* Implementation : CHICKEN */\n\n"); + Printf(f_runtime, "#define SWIGCHICKEN\n"); if (no_collection) Printf(f_runtime, "#define SWIG_CHICKEN_NO_COLLECTION 1\n"); + Printf(f_runtime, "\n"); + /* Set module name */ module = Swig_copy_string(Char(Getattr(n, "name"))); scmmodule = NewString(module); Modified: trunk/Source/Modules/csharp.cxx =================================================================== --- trunk/Source/Modules/csharp.cxx 2008-12-29 23:56:03 UTC (rev 11017) +++ trunk/Source/Modules/csharp.cxx 2008-12-30 00:38:34 UTC (rev 11018) @@ -360,6 +360,8 @@ Swig_banner(f_runtime); // Print the SWIG banner message + Printf(f_runtime, "#define SWIGCSHARP\n"); + if (directorsEnabled()) { Printf(f_runtime, "#define SWIG_DIRECTORS\n"); @@ -376,6 +378,8 @@ Printf(f_directors, "#include \"%s\"\n\n", Swig_file_filename(outfile_h)); } + Printf(f_runtime, "\n"); + Swig_name_register((char *) "wrapper", (char *) "CSharp_%f"); if (old_variable_names) { Swig_name_register((char *) "set", (char *) "set_%v"); Modified: trunk/Source/Modules/guile.cxx =================================================================== --- trunk/Source/Modules/guile.cxx 2008-12-29 23:56:03 UTC (rev 11017) +++ trunk/Source/Modules/guile.cxx 2008-12-30 00:38:34 UTC (rev 11018) @@ -324,7 +324,7 @@ Swig_banner(f_runtime); - Printf(f_runtime, "/* Implementation : GUILE */\n\n"); + Printf(f_runtime, "#define SWIGGUILE\n"); if (!use_scm_interface) { if (SwigRuntime == 1) @@ -357,6 +357,8 @@ Printf(f_runtime, "\n}\n"); } + Printf(f_runtime, "\n"); + Language::top(n); /* Close module */ Modified: trunk/Source/Modules/java.cxx =================================================================== --- trunk/Source/Modules/java.cxx 2008-12-29 23:56:03 UTC (rev 11017) +++ trunk/Source/Modules/java.cxx 2008-12-30 00:38:34 UTC (rev 11018) @@ -369,6 +369,8 @@ Swig_banner(f_runtime); // Print the SWIG banner message + Printf(f_runtime, "#define SWIGJAVA\n"); + if (directorsEnabled()) { Printf(f_runtime, "#define SWIG_DIRECTORS\n"); @@ -385,6 +387,8 @@ Printf(f_directors, "#include \"%s\"\n\n", Swig_file_filename(outfile_h)); } + Printf(f_runtime, "\n"); + String *wrapper_name = NewString(""); if (Len(package)) { Modified: trunk/Source/Modules/lua.cxx =================================================================== --- trunk/Source/Modules/lua.cxx 2008-12-29 23:56:03 UTC (rev 11017) +++ trunk/Source/Modules/lua.cxx 2008-12-30 00:38:34 UTC (rev 11018) @@ -250,10 +250,15 @@ /* Standard stuff for the SWIG runtime section */ Swig_banner(f_runtime); + + Printf(f_runtime, "#define SWIGLUA\n"); + // if (NoInclude) { // Printf(f_runtime, "#define SWIG_NOINCLUDE\n"); // } + Printf(f_runtime, "\n"); + //String *init_name = NewStringf("%(title)s_Init", module); //Printf(f_header, "#define SWIG_init %s\n", init_name); //Printf(f_header, "#define SWIG_name \"%s\"\n", module); Modified: trunk/Source/Modules/modula3.cxx =================================================================== --- trunk/Source/Modules/modula3.cxx 2008-12-29 23:56:03 UTC (rev 11017) +++ trunk/Source/Modules/modula3.cxx 2008-12-30 00:38:34 UTC (rev 11018) @@ -958,6 +958,9 @@ Swig_banner(f_runtime); // Print the SWIG banner message + Printf(f_runtime, "#define SWIGMODULA3\n"); + Printf(f_runtime, "\n"); + Swig_name_register((char *) "wrapper", (char *) "Modula3_%f"); if (old_variable_names) { Swig_name_register((char *) "set", (char *) "set_%v"); Modified: trunk/Source/Modules/mzscheme.cxx =================================================================== --- trunk/Source/Modules/mzscheme.cxx 2008-12-29 23:56:03 UTC (rev 11017) +++ trunk/Source/Modules/mzscheme.cxx 2008-12-30 00:38:34 UTC (rev 11018) @@ -148,6 +148,9 @@ Swig_banner(f_runtime); + Printf(f_runtime, "#define SWIGMZSCHEME\n"); + Printf(f_runtime, "\n"); + module = Getattr(n, "name"); Language::top(n); Modified: trunk/Source/Modules/ocaml.cxx =================================================================== --- trunk/Source/Modules/ocaml.cxx 2008-12-29 23:56:03 UTC (rev 11017) +++ trunk/Source/Modules/ocaml.cxx 2008-12-30 00:38:34 UTC (rev 11018) @@ -264,6 +264,7 @@ Swig_banner(f_runtime); + Printf(f_runtime, "#define SWIGOCAML\n"); Printf(f_runtime, "#define SWIG_MODULE \"%s\"\n", module); /* Module name */ Printf(f_mlbody, "let module_name = \"%s\"\n", module); @@ -281,6 +282,8 @@ Printf(f_runtime, "#define SWIG_DIRECTORS\n"); } + Printf(f_runtime, "\n"); + /* Produce the enum_to_int and int_to_enum functions */ Printf(f_enumtypes_type, "open Swig\n" "type c_enum_type = [ \n `unknown\n"); Modified: trunk/Source/Modules/octave.cxx =================================================================== --- trunk/Source/Modules/octave.cxx 2008-12-29 23:56:03 UTC (rev 11017) +++ trunk/Source/Modules/octave.cxx 2008-12-30 00:38:34 UTC (rev 11018) @@ -111,10 +111,12 @@ Swig_banner(f_runtime); + Printf(f_runtime, "#define SWIGOCTAVE\n"); Printf(f_runtime, "#define SWIG_name_d \"%s\"\n", module); Printf(f_runtime, "#define SWIG_name %s\n", module); if (directorsEnabled()) { + Printf(f_runtime, "#define SWIG_DIRECTORS\n"); Swig_banner(f_directors_h); if (dirprot_mode()) { // Printf(f_directors_h, "#include <map>\n"); @@ -122,6 +124,7 @@ } } + Printf(f_runtime, "\n"); Printf(s_global_tab, "\nstatic const struct swig_octave_member swig_globals[] = {\n"); Printf(f_init, "static void SWIG_init_user(octave_swig_type* module_ns)\n{\n"); Modified: trunk/Source/Modules/perl5.cxx =================================================================== --- trunk/Source/Modules/perl5.cxx 2008-12-29 23:56:03 UTC (rev 11017) +++ trunk/Source/Modules/perl5.cxx 2008-12-30 00:38:34 UTC (rev 11018) @@ -256,8 +256,8 @@ Printf(f_runtime, "#define SWIGPERL\n"); Printf(f_runtime, "#define SWIG_CASTRANK_MODE\n"); + Printf(f_runtime, "\n"); - // Is the imported module in another package? (IOW, does it use the // %module(package="name") option and it's different than the package // of this module.) Modified: trunk/Source/Modules/php.cxx =================================================================== --- trunk/Source/Modules/php.cxx 2008-12-29 23:56:03 UTC (rev 11017) +++ trunk/Source/Modules/php.cxx 2008-12-30 00:38:34 UTC (rev 11018) @@ -264,8 +264,6 @@ SWIG_exit(EXIT_FAILURE); } - Swig_banner(f_runtime); - /* sections of the output file */ s_init = NewString("/* init section */\n"); r_init = NewString("/* rinit section */\n"); @@ -291,6 +289,11 @@ Swig_register_filebyname("header", s_header); Swig_register_filebyname("wrapper", s_wrappers); + Swig_banner(f_runtime); + + Printf(f_runtime, "#define SWIGPHP\n"); + Printf(f_runtime, "\n"); + /* Set the module name */ module = Copy(Getattr(n, "name")); cap_module = NewStringf("%(upper)s", module); Modified: trunk/Source/Modules/pike.cxx =================================================================== --- trunk/Source/Modules/pike.cxx 2008-12-29 23:56:03 UTC (rev 11017) +++ trunk/Source/Modules/pike.cxx 2008-12-30 00:38:34 UTC (rev 11018) @@ -143,6 +143,9 @@ /* Standard stuff for the SWIG runtime section */ Swig_banner(f_runtime); + Printf(f_runtime, "#define SWIGPIKE\n"); + Printf(f_runtime, "\n"); + Printf(f_header, "#define SWIG_init pike_module_init\n"); Printf(f_header, "#define SWIG_name \"%s\"\n\n", module); Modified: trunk/Source/Modules/python.cxx =================================================================== --- trunk/Source/Modules/python.cxx 2008-12-29 23:56:03 UTC (rev 11017) +++ trunk/Source/Modules/python.cxx 2008-12-30 00:38:34 UTC (rev 11018) @@ -601,6 +601,8 @@ Printf(f_runtime, "#define SWIG_PYTHON_CLASSIC\n"); } + Printf(f_runtime, "\n"); + Printf(f_header, "#if (PY_VERSION_HEX <= 0x02000000)\n"); Printf(f_header, "# if !defined(SWIG_PYTHON_CLASSIC)\n"); Printf(f_header, "# error \"This python version requires swig to be run with the '-classic' option\"\n"); Modified: trunk/Source/Modules/r.cxx =================================================================== --- trunk/Source/Modules/r.cxx 2008-12-29 23:56:03 UTC (rev 11017) +++ trunk/Source/Modules/r.cxx 2008-12-30 00:38:34 UTC (rev 11018) @@ -816,9 +816,14 @@ Swig_register_filebyname("header", s_header); Swig_register_filebyname("wrapper", f_wrapper); Swig_register_filebyname("s", sfile); - Swig_register_filebyname("sclasses", s_classes); + Swig_banner(f_runtime); + + Printf(f_runtime, "#define SWIGR\n"); + Printf(f_runtime, "\n"); + + Swig_banner_target_lang(s_init, "#"); outputCommandLineArguments(s_init); @@ -898,9 +903,6 @@ SWIG_exit(EXIT_FAILURE); } - Swig_banner(runtime); - - Printf(runtime, "/* Runtime */\n"); Printf(runtime, "%s\n", f_runtime); Modified: trunk/Source/Modules/ruby.cxx =================================================================== --- trunk/Source/Modules/ruby.cxx 2008-12-29 23:56:03 UTC (rev 11017) +++ trunk/Source/Modules/ruby.cxx 2008-12-30 00:38:34 UTC (rev 11018) @@ -1043,6 +1043,8 @@ Printf(f_runtime, "#define SWIG_DIRECTORS\n"); } + Printf(f_runtime, "\n"); + /* typedef void *VALUE */ SwigType *value = NewSwigType(T_VOID); SwigType_add_pointer(value); Modified: trunk/Source/Modules/tcl8.cxx =================================================================== --- trunk/Source/Modules/tcl8.cxx 2008-12-29 23:56:03 UTC (rev 11017) +++ trunk/Source/Modules/tcl8.cxx 2008-12-30 00:38:34 UTC (rev 11018) @@ -160,6 +160,9 @@ Swig_banner(f_runtime); + Printf(f_runtime, "#define SWIGTCL\n"); + Printf(f_runtime, "\n"); + /* Set the module name, namespace, and prefix */ module = NewStringf("%(lower)s", Getattr(n, "name")); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wsf...@us...> - 2008-12-30 01:14:17
|
Revision: 11019 http://swig.svn.sourceforge.net/swig/?rev=11019&view=rev Author: wsfulton Date: 2008-12-30 01:14:14 +0000 (Tue, 30 Dec 2008) Log Message: ----------- getting ready for 1.3.37 release candidate Modified Paths: -------------- trunk/ANNOUNCE trunk/CHANGES.current trunk/Doc/Manual/Sections.html trunk/README trunk/TODO Modified: trunk/ANNOUNCE =================================================================== --- trunk/ANNOUNCE 2008-12-30 00:38:34 UTC (rev 11018) +++ trunk/ANNOUNCE 2008-12-30 01:14:14 UTC (rev 11019) @@ -1,11 +1,11 @@ -*** ANNOUNCE: SWIG 1.3.36 (24 June 2008) *** +*** ANNOUNCE: SWIG 1.3.37 (30 December 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 -and large number of enhancements throughout. +We're pleased to announce SWIG-1.3.37, the latest installment in the +SWIG development effort. SWIG-1.3.37 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.36.tar.gz + http://prdownloads.sourceforge.net/swig/swig-1.3.37.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.37.zip Release numbers --------------- Modified: trunk/CHANGES.current =================================================================== --- trunk/CHANGES.current 2008-12-30 00:38:34 UTC (rev 11018) +++ trunk/CHANGES.current 2008-12-30 01:14:14 UTC (rev 11019) @@ -1,5 +1,5 @@ -Version 1.3.37 (in progress) -============================ +Version 1.3.37 (30 December 2008) +================================= 2008-12-30: wsfulton Bug #2430756. All the languages now define a macro in the generated C/C++ @@ -78,6 +78,8 @@ you can download it here: https://swig.svn.sourceforge.net/svnroot/swig/trunk/Tools/pyname_patch.py + *** POTENTIAL INCOMPATIBILITY *** + 2008-12-02: wsfulton [Python] Apply patch #2143727 from Serge Monkewitz to fix importing base classes when the package option is specified in %module and that module is %import'ed. @@ -280,7 +282,7 @@ Fix SF #2019156 Configuring with --without-octave or --without-alllang did not disable octave. -2008-07-14: wsfultonn +2008-07-14: wsfulton [Java, C#] Fix director typemaps for pointers so that NULL pointers are correctly marshalled to C#/Java null in director methods. Modified: trunk/Doc/Manual/Sections.html =================================================================== --- trunk/Doc/Manual/Sections.html 2008-12-30 00:38:34 UTC (rev 11018) +++ trunk/Doc/Manual/Sections.html 2008-12-30 01:14:14 UTC (rev 11019) @@ -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.37 (30 December 2008) <H2>Sections</H2> Modified: trunk/README =================================================================== --- trunk/README 2008-12-30 00:38:34 UTC (rev 11018) +++ trunk/README 2008-12-30 01:14:14 UTC (rev 11019) @@ -1,6 +1,6 @@ SWIG (Simplified Wrapper and Interface Generator) -Version: 1.3.36 (24 June 2008) +Version: 1.3.37 (30 December 2008) Tagline: SWIG is a compiler that integrates C and C++ with languages including Perl, Python, Tcl, Ruby, PHP, Java, Ocaml, Lua, @@ -91,6 +91,18 @@ What's New? =========== +SWIG-1.3.37 summary: +- Python 3 support added +- SWIG now ships with a version of ccache that can be used with SWIG. + This enables the files generated by SWIG to be cached so that repeated + use of SWIG on unchanged input files speeds up builds quite considerably. +- PHP 4 support removed and PHP support improved in general +- Improved C# array support +- Numerous Allegro CL improvements +- Bug fixes/enhancements for Python, PHP, Java, C#, Chicken, Allegro CL, + CFFI, Ruby, Tcl, Perl. +- Other minor generic bug fixes and enhancements + SWIG-1.3.36 summary: - Enhancement to directors to wrap all protected members - Optimisation feature for objects returned by value Modified: trunk/TODO =================================================================== --- trunk/TODO 2008-12-30 00:38:34 UTC (rev 11018) +++ trunk/TODO 2008-12-30 01:14:14 UTC (rev 11019) @@ -1,6 +1,6 @@ SWIG TO-DO -Release: SWIG-1.3.36 +Release: SWIG-1.3.37 ----------------------------------------------------------------------------- This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wsf...@us...> - 2008-12-31 01:02:20
|
Revision: 11025 http://swig.svn.sourceforge.net/swig/?rev=11025&view=rev Author: wsfulton Date: 2008-12-31 01:02:16 +0000 (Wed, 31 Dec 2008) Log Message: ----------- re-order configure.in into sections for users and developers and requirements for the examples Modified Paths: -------------- trunk/Examples/test-suite/pure_virtual.i trunk/configure.in Modified: trunk/Examples/test-suite/pure_virtual.i =================================================================== --- trunk/Examples/test-suite/pure_virtual.i 2008-12-30 23:50:32 UTC (rev 11024) +++ trunk/Examples/test-suite/pure_virtual.i 2008-12-31 01:02:16 UTC (rev 11025) @@ -62,16 +62,18 @@ public: virtual void something() { }; }; +%} /* Fill in method from AA. This class should be constructable */ #ifdef SWIGCSHARP %ignore F::method2(); // Work around for lack of multiple inheritance support - base AA is ignored. #endif + +%inline %{ class F : public E { public: virtual void method2() { } }; - %} %{ Modified: trunk/configure.in =================================================================== --- trunk/configure.in 2008-12-30 23:50:32 UTC (rev 11024) +++ trunk/configure.in 2008-12-31 01:02:16 UTC (rev 11025) @@ -21,28 +21,83 @@ #endif ]) -dnl Checks for programs. +dnl Check for programs that a user requires to build SWIG AC_PROG_CC AC_PROG_CXX -AC_PROG_YACC AC_EXEEXT AC_OBJEXT -AC_PROG_RANLIB AM_PROG_CC_C_O # Needed for subdir-objects in AUTOMAKE_OPTIONS -AC_CHECK_PROGS(AR, ar aal, ar) -AC_SUBST(AR) -AC_CHECK_PROGS(YODL2MAN, yodl2man) -AC_CHECK_PROGS(YODL2HTML, yodl2html) AC_COMPILE_WARNINGS # Increase warning levels AC_DEFINE_UNQUOTED(SWIG_CXX, ["$CXX"], [Compiler that built SWIG]) AC_DEFINE_UNQUOTED(SWIG_PLATFORM, ["$build"], [Platform that SWIG is built for]) - dnl Checks for header files. AC_HEADER_STDC +dnl Checks for types. +AC_LANG_PUSH([C++]) +AC_CHECK_TYPES([bool]) +AC_LANG_POP([C++]) + +dnl Look for popen +AC_ARG_WITH(popen, AS_HELP_STRING([--without-popen], [Disable popen]), with_popen="$withval") +if test x"${with_popen}" = xno ; then +AC_MSG_NOTICE([Disabling popen]) +else +AC_CHECK_FUNC(popen, AC_DEFINE(HAVE_POPEN, 1, [Define if popen is available]), AC_MSG_NOTICE([Disabling popen])) +fi + +dnl Look for RxSpencer +AC_ARG_WITH(rxspencer, AS_HELP_STRING([--with-rxspencer], [Enable RxSpencer]), with_rxspencer="yes") +if test x"${with_rxspencer}" = xyes ; then +#check first for the header + AC_CHECK_HEADER(rxspencer/regex.h,with_rxspencer="yes",with_rxspencer="no") + if test x"${with_rxspencer}" = xyes ; then +# now check for the library + AC_CHECK_LIB(rxspencer, regcomp,with_rxspencer="yes",with_rxspencer="no") + fi + if test x"${with_rxspencer}" = xyes ; then +# library and header are available + AC_DEFINE(HAVE_RXSPENCER, 1,[Define if rxspencer is available]) + LIBS="$LIBS -lrxspencer" + else + AC_MSG_NOTICE([RxSpencer not found. Obtain it at http://arglist.com/regex or http://gnuwin32.sourceforge.net/packages.html]) + fi +fi + +dnl CCache +AC_ARG_ENABLE([ccache], AS_HELP_STRING([--disable-ccache], [disable building and installation of ccache-swig executable (default enabled)]), [enable_ccache=$enableval], [enable_ccache=yes]) +AC_MSG_CHECKING([whether to enable ccache-swig]) +AC_MSG_RESULT([$enable_ccache]) + +if test "$enable_ccache" = yes; then + AC_CONFIG_SUBDIRS(CCache) + ENABLE_CCACHE=1 +fi +AC_SUBST(ENABLE_CCACHE) + + +echo "" +echo "Checking packages required for SWIG developers." +echo "Note : None of the following packages are required for users to compile and install SWIG" +echo "" + +AC_PROG_YACC +AC_PROG_RANLIB +AC_CHECK_PROGS(AR, ar aal, ar) +AC_SUBST(AR) +AC_CHECK_PROGS(YODL2MAN, yodl2man) +AC_CHECK_PROGS(YODL2HTML, yodl2html) + + +echo "" +echo "Checking for installed target languages and other information in order to compile and run the examples." +echo "Note : None of the following packages are required for users to compile and install SWIG" +echo "" + + dnl How to specify include directories that may be system directories. # -I should not be used on system directories (GCC) if test "$GCC" = yes; then @@ -52,21 +107,9 @@ fi -dnl Checks for types. -AC_LANG_PUSH([C++]) -AC_CHECK_TYPES([bool]) -AC_LANG_POP([C++]) +dnl Info for building shared libraries ... in order to run the examples - -# Set info about shared libraries. -AC_SUBST(SO) -AC_SUBST(LDSHARED) -AC_SUBST(CCSHARED) -AC_SUBST(CXXSHARED) -AC_SUBST(TRYLINKINGWITHCXX) -AC_SUBST(LINKFORSHARED) - -# SO is the extension of shared libraries `(including the dot!) +# SO is the extension of shared libraries (including the dot!) AC_MSG_CHECKING(SO) if test -z "$SO" then @@ -203,7 +246,6 @@ esac fi AC_MSG_RESULT($RPATH) -AC_SUBST(RPATH) # LINKFORSHARED are the flags passed to the $(CC) command that links # the a few executables -- this is only needed for a few systems @@ -223,6 +265,15 @@ fi AC_MSG_RESULT($LINKFORSHARED) +# Set info about shared libraries. +AC_SUBST(SO) +AC_SUBST(LDSHARED) +AC_SUBST(CCSHARED) +AC_SUBST(CXXSHARED) +AC_SUBST(TRYLINKINGWITHCXX) +AC_SUBST(LINKFORSHARED) +AC_SUBST(RPATH) + # This variation is needed on OS-X because there is no (apparent) consistency in shared library naming. # Sometimes .bundle works, but sometimes .so is needed. It depends on the target language @@ -271,46 +322,6 @@ esac - -echo "" -echo "Checking for installed packages." -echo "Note : None of the following packages are required to compile SWIG" -echo "" - -#---------------------------------------------------------------- -# Look for popen -#---------------------------------------------------------------- - -AC_ARG_WITH(popen, AS_HELP_STRING([--without-popen], [Disable popen]), with_popen="$withval") -if test x"${with_popen}" = xno ; then -AC_MSG_NOTICE([Disabling popen]) -else -AC_CHECK_FUNC(popen, AC_DEFINE(HAVE_POPEN, 1, [Define if popen is available]), AC_MSG_NOTICE([Disabling popen])) -fi - -#---------------------------------------------------------------- -# Look for RxSpencer -#---------------------------------------------------------------- - -AC_ARG_WITH(rxspencer, AS_HELP_STRING([--with-rxspencer], [Enable RxSpencer]), with_rxspencer="yes") -if test x"${with_rxspencer}" = xyes ; then -#check first for the header - AC_CHECK_HEADER(rxspencer/regex.h,with_rxspencer="yes",with_rxspencer="no") - if test x"${with_rxspencer}" = xyes ; then -# now check for the library - AC_CHECK_LIB(rxspencer, regcomp,with_rxspencer="yes",with_rxspencer="no") - fi - if test x"${with_rxspencer}" = xyes ; then -# library and header are available - AC_DEFINE(HAVE_RXSPENCER, 1,[Define if rxspencer is available]) - LIBS="$LIBS -lrxspencer" - else - AC_MSG_NOTICE([RxSpencer not found. Obtain it at http://arglist.com/regex or http://gnuwin32.sourceforge.net/packages.html]) - fi -fi - -#---------------------------------------------------------------- - # Check for specific libraries. Used for SWIG examples AC_CHECK_LIB(dl, dlopen) # Dynamic linking for SunOS/Solaris and SYSV AC_CHECK_LIB(dld, shl_load) # Dynamic linking for HP-UX @@ -2101,6 +2112,7 @@ # Miscellaneous #---------------------------------------------------------------- + # Root directory # Translate path for native Windows compilers for use with 'make check' ROOT_DIR=`pwd` @@ -2167,17 +2179,5 @@ AC_CONFIG_FILES([preinst-swig], [chmod +x preinst-swig]) AC_CONFIG_FILES([CCache/ccache_swig_config.h]) -# ccache -AC_ARG_ENABLE([ccache], AS_HELP_STRING([--disable-ccache], [disable building and installation of ccache-swig executable (default enabled)]), [enable_ccache=$enableval], [enable_ccache=yes]) -AC_MSG_CHECKING([whether to enable ccache-swig]) -AC_MSG_RESULT([$enable_ccache]) - -if test "$enable_ccache" = yes; then - AC_CONFIG_SUBDIRS(CCache) - ENABLE_CCACHE=1 -fi - -AC_SUBST(ENABLE_CCACHE) - AC_OUTPUT dnl configure.in ends here This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wsf...@us...> - 2009-01-05 17:19:44
|
Revision: 11029 http://swig.svn.sourceforge.net/swig/?rev=11029&view=rev Author: wsfulton Date: 2009-01-05 17:19:32 +0000 (Mon, 05 Jan 2009) Log Message: ----------- fix up namespaces so that boost, std or std::tr1 can be used for shared_ptr/intrusive_ptr Modified Paths: -------------- trunk/Examples/test-suite/li_boost_intrusive_ptr.i trunk/Lib/intrusive_ptr.i trunk/Lib/java/boost_intrusive_ptr.i Modified: trunk/Examples/test-suite/li_boost_intrusive_ptr.i =================================================================== --- trunk/Examples/test-suite/li_boost_intrusive_ptr.i 2009-01-03 01:59:42 UTC (rev 11028) +++ trunk/Examples/test-suite/li_boost_intrusive_ptr.i 2009-01-05 17:19:32 UTC (rev 11029) @@ -12,6 +12,7 @@ %warnfilter(SWIGWARN_TYPEMAP_SWIGTYPELEAK); %inline %{ +#include "boost/shared_ptr.hpp" #include "boost/intrusive_ptr.hpp" #include <boost/detail/atomic_count.hpp> @@ -33,6 +34,7 @@ %include "std_string.i" #ifndef INTRUSIVE_PTR_WRAPPER # define SWIG_INTRUSIVE_PTR_NAMESPACE SwigBoost +# define SWIG_SHARED_PTR_NAMESPACE SwigBoost #endif #if defined(SWIGJAVA) || defined(SWIGCSHARP) || defined(SWIGPYTHON) Modified: trunk/Lib/intrusive_ptr.i =================================================================== --- trunk/Lib/intrusive_ptr.i 2009-01-03 01:59:42 UTC (rev 11028) +++ trunk/Lib/intrusive_ptr.i 2009-01-05 17:19:32 UTC (rev 11029) @@ -1,4 +1,10 @@ -// intrusive_ptr namespaces could be boost or std or std::tr1 +// Allow for different namespaces for shared_ptr / intrusive_ptr - they could be boost or std or std::tr1 +// For example for std::tr1, use: +// #define SWIG_SHARED_PTR_NAMESPACE std +// #define SWIG_SHARED_PTR_SUBNAMESPACE tr1 +// #define SWIG_INTRUSIVE_PTR_NAMESPACE boost +// #define SWIG_INTRUSIVE_PTR_SUBNAMESPACE + #if !defined(SWIG_INTRUSIVE_PTR_NAMESPACE) # define SWIG_INTRUSIVE_PTR_NAMESPACE boost #endif @@ -13,9 +19,6 @@ #if defined(SWIG_INTRUSIVE_PTR_SUBNAMESPACE) namespace SWIG_INTRUSIVE_PTR_SUBNAMESPACE { #endif - template <class T> class shared_ptr { - }; - template <class T> class intrusive_ptr { }; #if defined(SWIG_INTRUSIVE_PTR_SUBNAMESPACE) @@ -23,10 +26,6 @@ #endif } -%inline %{ - #include "boost/shared_ptr.hpp" -%} - %fragment("SWIG_intrusive_deleter", "header") { template<class T> struct SWIG_intrusive_deleter { @@ -58,12 +57,12 @@ %define SWIG_INTRUSIVE_PTR_DERIVED(PROXYCLASS, BASECLASSTYPE, TYPE...) SWIG_INTRUSIVE_PTR_TYPEMAPS(PROXYCLASS, , TYPE) SWIG_INTRUSIVE_PTR_TYPEMAPS(PROXYCLASS, const, TYPE) -%types(SWIG_INTRUSIVE_PTR_NAMESPACE::shared_ptr< TYPE > = SWIG_INTRUSIVE_PTR_NAMESPACE::shared_ptr< BASECLASSTYPE >) %{ +%types(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< TYPE > = SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< BASECLASSTYPE >) %{ *newmemory = SWIG_CAST_NEW_MEMORY; - return (void *) new SWIG_INTRUSIVE_PTR_NAMESPACE::shared_ptr< BASECLASSTYPE >(*(SWIG_INTRUSIVE_PTR_NAMESPACE::shared_ptr< TYPE > *)$from); + return (void *) new SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< BASECLASSTYPE >(*(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< TYPE > *)$from); %} %extend TYPE { - static SWIG_INTRUSIVE_PTR_NAMESPACE::shared_ptr< BASECLASSTYPE > SWIGSharedPtrUpcast(SWIG_INTRUSIVE_PTR_NAMESPACE::shared_ptr< TYPE > swigSharedPtrUpcast) { + static SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< BASECLASSTYPE > SWIGSharedPtrUpcast(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< TYPE > swigSharedPtrUpcast) { return swigSharedPtrUpcast; } } @@ -83,12 +82,12 @@ %define SWIG_INTRUSIVE_PTR_DERIVED_NO_WRAP(PROXYCLASS, BASECLASSTYPE, TYPE...) SWIG_INTRUSIVE_PTR_TYPEMAPS_NO_WRAP(PROXYCLASS, , TYPE) SWIG_INTRUSIVE_PTR_TYPEMAPS_NO_WRAP(PROXYCLASS, const, TYPE) -%types(SWIG_INTRUSIVE_PTR_NAMESPACE::shared_ptr< TYPE > = SWIG_INTRUSIVE_PTR_NAMESPACE::shared_ptr< BASECLASSTYPE >) %{ +%types(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< TYPE > = SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< BASECLASSTYPE >) %{ *newmemory = SWIG_CAST_NEW_MEMORY; - return (void *) new SWIG_INTRUSIVE_PTR_NAMESPACE::shared_ptr< BASECLASSTYPE >(*(SWIG_INTRUSIVE_PTR_NAMESPACE::shared_ptr< TYPE > *)$from); - %} + return (void *) new SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< BASECLASSTYPE >(*(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< TYPE > *)$from); +%} %extend TYPE { - static SWIG_INTRUSIVE_PTR_NAMESPACE::shared_ptr< BASECLASSTYPE > SWIGSharedPtrUpcast(SWIG_INTRUSIVE_PTR_NAMESPACE::shared_ptr< TYPE > swigSharedPtrUpcast) { + static SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< BASECLASSTYPE > SWIGSharedPtrUpcast(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< TYPE > swigSharedPtrUpcast) { return swigSharedPtrUpcast; } } Modified: trunk/Lib/java/boost_intrusive_ptr.i =================================================================== --- trunk/Lib/java/boost_intrusive_ptr.i 2009-01-03 01:59:42 UTC (rev 11028) +++ trunk/Lib/java/boost_intrusive_ptr.i 2009-01-05 17:19:32 UTC (rev 11029) @@ -9,9 +9,9 @@ %feature("unref") TYPE "(void)arg1; delete smartarg1;" -%typemap(in) CONST TYPE ($&1_type argp = 0, SWIG_INTRUSIVE_PTR_QNAMESPACE::shared_ptr< CONST TYPE > *smartarg = 0) %{ +%typemap(in) CONST TYPE ($&1_type argp = 0, SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > *smartarg = 0) %{ // plain value - argp = (*(SWIG_INTRUSIVE_PTR_QNAMESPACE::shared_ptr< CONST TYPE > **)&$input) ? (*(SWIG_INTRUSIVE_PTR_QNAMESPACE::shared_ptr< CONST TYPE > **)&$input)->get() : 0; + argp = (*(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > **)&$input) ? (*(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > **)&$input)->get() : 0; if (!argp) { SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null $1_type"); return $null; @@ -22,12 +22,12 @@ //plain value(out) $1_ltype* resultp = new $1_ltype(($1_ltype &)$1); intrusive_ptr_add_ref(resultp); - *(SWIG_INTRUSIVE_PTR_QNAMESPACE::shared_ptr< CONST TYPE > **)&$result = new SWIG_INTRUSIVE_PTR_QNAMESPACE::shared_ptr< CONST TYPE >(resultp, SWIG_intrusive_deleter< CONST TYPE >()); + *(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > **)&$result = new SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE >(resultp, SWIG_intrusive_deleter< CONST TYPE >()); %} -%typemap(in) CONST TYPE * (SWIG_INTRUSIVE_PTR_QNAMESPACE::shared_ptr< CONST TYPE > *smartarg = 0) %{ +%typemap(in) CONST TYPE * (SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > *smartarg = 0) %{ // plain pointer - smartarg = *(SWIG_INTRUSIVE_PTR_QNAMESPACE::shared_ptr< CONST TYPE > **)&$input; + smartarg = *(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > **)&$input; $1 = (TYPE *)(smartarg ? smartarg->get() : 0); %} %typemap(out, fragment="SWIG_intrusive_deleter,SWIG_null_deleter") CONST TYPE * %{ @@ -35,18 +35,18 @@ #if ($owner) if ($1) { intrusive_ptr_add_ref($1); - *(SWIG_INTRUSIVE_PTR_QNAMESPACE::shared_ptr< CONST TYPE > **)&$result = new SWIG_INTRUSIVE_PTR_QNAMESPACE::shared_ptr< CONST TYPE >($1, SWIG_intrusive_deleter< CONST TYPE >()); + *(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > **)&$result = new SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE >($1, SWIG_intrusive_deleter< CONST TYPE >()); } else { - *(SWIG_INTRUSIVE_PTR_QNAMESPACE::shared_ptr< CONST TYPE > **)&$result = 0; + *(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > **)&$result = 0; } #else - *(SWIG_INTRUSIVE_PTR_QNAMESPACE::shared_ptr< CONST TYPE > **)&$result = $1 ? new SWIG_INTRUSIVE_PTR_QNAMESPACE::shared_ptr< CONST TYPE >($1 SWIG_NO_NULL_DELETER_0) : 0; + *(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > **)&$result = $1 ? new SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE >($1 SWIG_NO_NULL_DELETER_0) : 0; #endif %} -%typemap(in) CONST TYPE & (SWIG_INTRUSIVE_PTR_QNAMESPACE::shared_ptr< CONST TYPE > *smartarg = 0) %{ +%typemap(in) CONST TYPE & (SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > *smartarg = 0) %{ // plain reference - $1 = ($1_ltype)((*(SWIG_INTRUSIVE_PTR_QNAMESPACE::shared_ptr< CONST TYPE > **)&$input) ? (*(SWIG_INTRUSIVE_PTR_QNAMESPACE::shared_ptr< CONST TYPE > **)&$input)->get() : 0); + $1 = ($1_ltype)((*(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > **)&$input) ? (*(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > **)&$input)->get() : 0); if(!$1) { SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "$1_type reference is null"); return $null; @@ -57,18 +57,18 @@ #if ($owner) if ($1) { intrusive_ptr_add_ref($1); - *(SWIG_INTRUSIVE_PTR_QNAMESPACE::shared_ptr< CONST TYPE > **)&$result = new SWIG_INTRUSIVE_PTR_QNAMESPACE::shared_ptr< CONST TYPE >($1, SWIG_intrusive_deleter< CONST TYPE >()); + *(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > **)&$result = new SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE >($1, SWIG_intrusive_deleter< CONST TYPE >()); } else { - *(SWIG_INTRUSIVE_PTR_QNAMESPACE::shared_ptr< CONST TYPE > **)&$result = 0; + *(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > **)&$result = 0; } #else - *(SWIG_INTRUSIVE_PTR_QNAMESPACE::shared_ptr< CONST TYPE > **)&$result = $1 ? new SWIG_INTRUSIVE_PTR_QNAMESPACE::shared_ptr< CONST TYPE >($1 SWIG_NO_NULL_DELETER_0) : 0; + *(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > **)&$result = $1 ? new SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE >($1 SWIG_NO_NULL_DELETER_0) : 0; #endif %} -%typemap(in) CONST TYPE *& ($*1_ltype temp = 0, SWIG_INTRUSIVE_PTR_QNAMESPACE::shared_ptr< CONST TYPE > *smartarg = 0) %{ +%typemap(in) CONST TYPE *& ($*1_ltype temp = 0, SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > *smartarg = 0) %{ // plain pointer by reference - temp = ((*(SWIG_INTRUSIVE_PTR_QNAMESPACE::shared_ptr< CONST TYPE > **)&$input) ? (*(SWIG_INTRUSIVE_PTR_QNAMESPACE::shared_ptr< CONST TYPE > **)&$input)->get() : 0); + temp = ((*(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > **)&$input) ? (*(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > **)&$input)->get() : 0); $1 = &temp; %} %typemap(out, fragment="SWIG_intrusive_deleter,SWIG_null_deleter") CONST TYPE *& %{ @@ -76,45 +76,45 @@ #if ($owner) if (*$1) { intrusive_ptr_add_ref(*$1); - *(SWIG_INTRUSIVE_PTR_QNAMESPACE::shared_ptr< CONST TYPE > **)&$result = new SWIG_INTRUSIVE_PTR_QNAMESPACE::shared_ptr< CONST TYPE >(*$1, SWIG_intrusive_deleter< CONST TYPE >()); + *(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > **)&$result = new SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE >(*$1, SWIG_intrusive_deleter< CONST TYPE >()); } else { - *(SWIG_INTRUSIVE_PTR_QNAMESPACE::shared_ptr< CONST TYPE > **)&$result = 0; + *(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > **)&$result = 0; } #else - *(SWIG_INTRUSIVE_PTR_QNAMESPACE::shared_ptr< CONST TYPE > **)&$result = new SWIG_INTRUSIVE_PTR_QNAMESPACE::shared_ptr< CONST TYPE >(*$1 SWIG_NO_NULL_DELETER_0); + *(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > **)&$result = new SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE >(*$1 SWIG_NO_NULL_DELETER_0); #endif %} -%typemap(in) SWIG_INTRUSIVE_PTR_QNAMESPACE::intrusive_ptr< CONST TYPE > ($&1_type argp, SWIG_INTRUSIVE_PTR_QNAMESPACE::shared_ptr< CONST TYPE > * smartarg) %{ +%typemap(in) SWIG_INTRUSIVE_PTR_QNAMESPACE::intrusive_ptr< CONST TYPE > ($&1_type argp, SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > * smartarg) %{ // intrusive_ptr by value - smartarg = *(SWIG_INTRUSIVE_PTR_NAMESPACE::shared_ptr< CONST TYPE >**)&$input; + smartarg = *(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE >**)&$input; if (smartarg) { - $1 = SWIG_INTRUSIVE_PTR_NAMESPACE::intrusive_ptr< CONST TYPE >(smartarg->get(), true); + $1 = SWIG_INTRUSIVE_PTR_QNAMESPACE::intrusive_ptr< CONST TYPE >(smartarg->get(), true); } %} %typemap(out, fragment="SWIG_intrusive_deleter") SWIG_INTRUSIVE_PTR_QNAMESPACE::intrusive_ptr< CONST TYPE > %{ if ($1) { intrusive_ptr_add_ref(result.get()); - *(SWIG_INTRUSIVE_PTR_QNAMESPACE::shared_ptr< CONST TYPE > **)&$result = new SWIG_INTRUSIVE_PTR_QNAMESPACE::shared_ptr< CONST TYPE >(result.get(), SWIG_intrusive_deleter< CONST TYPE >()); + *(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > **)&$result = new SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE >(result.get(), SWIG_intrusive_deleter< CONST TYPE >()); } else { - *(SWIG_INTRUSIVE_PTR_QNAMESPACE::shared_ptr< CONST TYPE > **)&$result = 0; + *(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > **)&$result = 0; } %} -%typemap(in) SWIG_INTRUSIVE_PTR_QNAMESPACE::shared_ptr< CONST TYPE > swigSharedPtrUpcast ($&1_type smartarg) %{ +%typemap(in) SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > swigSharedPtrUpcast ($&1_type smartarg) %{ // shared_ptr by value smartarg = *($&1_ltype*)&$input; if (smartarg) $1 = *smartarg; %} -%typemap(out) SWIG_INTRUSIVE_PTR_QNAMESPACE::shared_ptr< CONST TYPE > ANY_TYPE_SWIGSharedPtrUpcast %{ +%typemap(out) SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > ANY_TYPE_SWIGSharedPtrUpcast %{ *($&1_ltype*)&$result = $1 ? new $1_ltype($1) : 0; %} -%typemap(in) SWIG_INTRUSIVE_PTR_QNAMESPACE::intrusive_ptr< CONST TYPE > & ($*1_ltype tempnull, $*1_ltype temp, SWIG_INTRUSIVE_PTR_QNAMESPACE::shared_ptr< CONST TYPE > * smartarg) %{ +%typemap(in) SWIG_INTRUSIVE_PTR_QNAMESPACE::intrusive_ptr< CONST TYPE > & ($*1_ltype tempnull, $*1_ltype temp, SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > * smartarg) %{ // intrusive_ptr by reference if ( $input ) { - smartarg = *(SWIG_INTRUSIVE_PTR_NAMESPACE::shared_ptr< CONST TYPE >**)&$input; - temp = SWIG_INTRUSIVE_PTR_NAMESPACE::intrusive_ptr< CONST TYPE >(smartarg->get(), true); + smartarg = *(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE >**)&$input; + temp = SWIG_INTRUSIVE_PTR_QNAMESPACE::intrusive_ptr< CONST TYPE >(smartarg->get(), true); $1 = &temp; } else { $1 = &tempnull; @@ -123,24 +123,24 @@ %typemap(memberin) SWIG_INTRUSIVE_PTR_QNAMESPACE::intrusive_ptr< CONST TYPE > & %{ delete &($1); if ($self) { - SWIG_INTRUSIVE_PTR_NAMESPACE::intrusive_ptr< CONST TYPE > * temp = new SWIG_INTRUSIVE_PTR_NAMESPACE::intrusive_ptr< CONST TYPE >(*$input); + SWIG_INTRUSIVE_PTR_QNAMESPACE::intrusive_ptr< CONST TYPE > * temp = new SWIG_INTRUSIVE_PTR_QNAMESPACE::intrusive_ptr< CONST TYPE >(*$input); $1 = *temp; } %} %typemap(out, fragment="SWIG_intrusive_deleter") SWIG_INTRUSIVE_PTR_QNAMESPACE::intrusive_ptr< CONST TYPE > & %{ if (*$1) { intrusive_ptr_add_ref($1->get()); - *(SWIG_INTRUSIVE_PTR_QNAMESPACE::shared_ptr< CONST TYPE > **)&$result = new SWIG_INTRUSIVE_PTR_QNAMESPACE::shared_ptr< CONST TYPE >($1->get(), SWIG_intrusive_deleter< CONST TYPE >()); + *(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > **)&$result = new SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE >($1->get(), SWIG_intrusive_deleter< CONST TYPE >()); } else { - *(SWIG_INTRUSIVE_PTR_QNAMESPACE::shared_ptr< CONST TYPE > **)&$result = 0; + *(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > **)&$result = 0; } %} -%typemap(in) SWIG_INTRUSIVE_PTR_QNAMESPACE::intrusive_ptr< CONST TYPE > * ($*1_ltype tempnull, $*1_ltype temp, SWIG_INTRUSIVE_PTR_QNAMESPACE::shared_ptr< CONST TYPE > * smartarg) %{ +%typemap(in) SWIG_INTRUSIVE_PTR_QNAMESPACE::intrusive_ptr< CONST TYPE > * ($*1_ltype tempnull, $*1_ltype temp, SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > * smartarg) %{ // intrusive_ptr by pointer if ( $input ) { - smartarg = *(SWIG_INTRUSIVE_PTR_NAMESPACE::shared_ptr< CONST TYPE >**)&$input; - temp = SWIG_INTRUSIVE_PTR_NAMESPACE::intrusive_ptr< CONST TYPE >(smartarg->get(), true); + smartarg = *(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE >**)&$input; + temp = SWIG_INTRUSIVE_PTR_QNAMESPACE::intrusive_ptr< CONST TYPE >(smartarg->get(), true); $1 = &temp; } else { $1 = &tempnull; @@ -148,23 +148,23 @@ %} %typemap(memberin) SWIG_INTRUSIVE_PTR_QNAMESPACE::intrusive_ptr< CONST TYPE > * %{ delete $1; - if ($self) $1 = new SWIG_INTRUSIVE_PTR_NAMESPACE::intrusive_ptr< CONST TYPE >(*$input); + if ($self) $1 = new SWIG_INTRUSIVE_PTR_QNAMESPACE::intrusive_ptr< CONST TYPE >(*$input); %} %typemap(out, fragment="SWIG_intrusive_deleter") SWIG_INTRUSIVE_PTR_QNAMESPACE::intrusive_ptr< CONST TYPE > * %{ if ($1 && *$1) { intrusive_ptr_add_ref($1->get()); - *(SWIG_INTRUSIVE_PTR_QNAMESPACE::shared_ptr< CONST TYPE > **)&$result = new SWIG_INTRUSIVE_PTR_QNAMESPACE::shared_ptr< CONST TYPE >($1->get(), SWIG_intrusive_deleter< CONST TYPE >()); + *(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > **)&$result = new SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE >($1->get(), SWIG_intrusive_deleter< CONST TYPE >()); } else { - *(SWIG_INTRUSIVE_PTR_QNAMESPACE::shared_ptr< CONST TYPE > **)&$result = 0; + *(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > **)&$result = 0; } if ($owner) delete $1; %} -%typemap(in) SWIG_INTRUSIVE_PTR_QNAMESPACE::intrusive_ptr< CONST TYPE > *& (SWIG_INTRUSIVE_PTR_NAMESPACE::intrusive_ptr< CONST TYPE > temp, $*1_ltype tempp = 0, SWIG_INTRUSIVE_PTR_QNAMESPACE::shared_ptr< CONST TYPE > * smartarg) %{ +%typemap(in) SWIG_INTRUSIVE_PTR_QNAMESPACE::intrusive_ptr< CONST TYPE > *& (SWIG_INTRUSIVE_PTR_QNAMESPACE::intrusive_ptr< CONST TYPE > temp, $*1_ltype tempp = 0, SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > * smartarg) %{ // intrusive_ptr by pointer reference - smartarg = *(SWIG_INTRUSIVE_PTR_NAMESPACE::shared_ptr< CONST TYPE >**)&$input; + smartarg = *(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE >**)&$input; if ($input) { - temp = SWIG_INTRUSIVE_PTR_NAMESPACE::intrusive_ptr< CONST TYPE >(smartarg->get(), true); + temp = SWIG_INTRUSIVE_PTR_QNAMESPACE::intrusive_ptr< CONST TYPE >(smartarg->get(), true); } tempp = &temp; $1 = &tempp; @@ -175,9 +175,9 @@ %typemap(out, fragment="SWIG_intrusive_deleter") SWIG_INTRUSIVE_PTR_QNAMESPACE::intrusive_ptr< CONST TYPE > *& %{ if (*$1 && **$1) { intrusive_ptr_add_ref((*$1)->get()); - *(SWIG_INTRUSIVE_PTR_QNAMESPACE::shared_ptr< CONST TYPE > **)&$result = new SWIG_INTRUSIVE_PTR_QNAMESPACE::shared_ptr< CONST TYPE >((*$1)->get(), SWIG_intrusive_deleter< CONST TYPE >()); + *(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > **)&$result = new SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE >((*$1)->get(), SWIG_intrusive_deleter< CONST TYPE >()); } else { - *(SWIG_INTRUSIVE_PTR_QNAMESPACE::shared_ptr< CONST TYPE > **)&$result = 0; + *(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > **)&$result = 0; } %} @@ -191,22 +191,22 @@ %typemap (jni) SWIG_INTRUSIVE_PTR_QNAMESPACE::intrusive_ptr< CONST TYPE >, - SWIG_INTRUSIVE_PTR_QNAMESPACE::shared_ptr< CONST TYPE >, + SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE >, SWIG_INTRUSIVE_PTR_QNAMESPACE::intrusive_ptr< CONST TYPE > &, SWIG_INTRUSIVE_PTR_QNAMESPACE::intrusive_ptr< CONST TYPE > *, SWIG_INTRUSIVE_PTR_QNAMESPACE::intrusive_ptr< CONST TYPE > *& "jlong" %typemap (jtype) SWIG_INTRUSIVE_PTR_QNAMESPACE::intrusive_ptr< CONST TYPE >, - SWIG_INTRUSIVE_PTR_QNAMESPACE::shared_ptr< CONST TYPE >, + SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE >, SWIG_INTRUSIVE_PTR_QNAMESPACE::intrusive_ptr< CONST TYPE > &, SWIG_INTRUSIVE_PTR_QNAMESPACE::intrusive_ptr< CONST TYPE > *, SWIG_INTRUSIVE_PTR_QNAMESPACE::intrusive_ptr< CONST TYPE > *& "long" %typemap (jstype) SWIG_INTRUSIVE_PTR_QNAMESPACE::intrusive_ptr< CONST TYPE >, - SWIG_INTRUSIVE_PTR_QNAMESPACE::shared_ptr< CONST TYPE >, + SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE >, SWIG_INTRUSIVE_PTR_QNAMESPACE::intrusive_ptr< CONST TYPE > &, SWIG_INTRUSIVE_PTR_QNAMESPACE::intrusive_ptr< CONST TYPE > *, SWIG_INTRUSIVE_PTR_QNAMESPACE::intrusive_ptr< CONST TYPE > *& "PROXYCLASS" %typemap(javain) SWIG_INTRUSIVE_PTR_QNAMESPACE::intrusive_ptr< CONST TYPE >, - SWIG_INTRUSIVE_PTR_QNAMESPACE::shared_ptr< CONST TYPE >, + SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE >, SWIG_INTRUSIVE_PTR_QNAMESPACE::intrusive_ptr< CONST TYPE > &, SWIG_INTRUSIVE_PTR_QNAMESPACE::intrusive_ptr< CONST TYPE > *, SWIG_INTRUSIVE_PTR_QNAMESPACE::intrusive_ptr< CONST TYPE > *& "PROXYCLASS.getCPtr($javainput)" @@ -215,7 +215,7 @@ long cPtr = $jnicall; return (cPtr == 0) ? null : new PROXYCLASS(cPtr, true); } -%typemap(javaout) SWIG_INTRUSIVE_PTR_QNAMESPACE::shared_ptr< CONST TYPE > { +%typemap(javaout) SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > { long cPtr = $jnicall; return (cPtr == 0) ? null : new PROXYCLASS(cPtr, true); } @@ -297,11 +297,11 @@ } // CONST version needed ???? also for C# -%typemap(jtype, nopgcpp="1") SWIG_INTRUSIVE_PTR_QNAMESPACE::shared_ptr< TYPE > swigSharedPtrUpcast "long" -%typemap(jtype, nopgcpp="1") SWIG_INTRUSIVE_PTR_QNAMESPACE::shared_ptr< CONST TYPE > swigSharedPtrUpcast "long" +%typemap(jtype, nopgcpp="1") SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< TYPE > swigSharedPtrUpcast "long" +%typemap(jtype, nopgcpp="1") SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > swigSharedPtrUpcast "long" -%template() SWIG_INTRUSIVE_PTR_QNAMESPACE::shared_ptr< CONST TYPE >; +%template() SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE >; %template() SWIG_INTRUSIVE_PTR_QNAMESPACE::intrusive_ptr< CONST TYPE >; %enddef @@ -314,7 +314,7 @@ %define SWIG_INTRUSIVE_PTR_TYPEMAPS_NO_WRAP(PROXYCLASS, CONST, TYPE...) %naturalvar TYPE; -%naturalvar SWIG_INTRUSIVE_PTR_QNAMESPACE::shared_ptr< CONST TYPE >; +%naturalvar SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE >; // destructor mods %feature("unref") TYPE "(void)arg1; delete smartarg1;" @@ -322,46 +322,46 @@ // plain value %typemap(in) CONST TYPE ($&1_type argp = 0) %{ - argp = (*(SWIG_INTRUSIVE_PTR_QNAMESPACE::shared_ptr< CONST TYPE > **)&$input) ? (*(SWIG_INTRUSIVE_PTR_QNAMESPACE::shared_ptr< CONST TYPE > **)&$input)->get() : 0; + argp = (*(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > **)&$input) ? (*(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > **)&$input)->get() : 0; if (!argp) { SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null $1_type"); return $null; } $1 = *argp; %} %typemap(out) CONST TYPE -%{ *(SWIG_INTRUSIVE_PTR_QNAMESPACE::shared_ptr< CONST TYPE > **)&$result = new SWIG_INTRUSIVE_PTR_QNAMESPACE::shared_ptr< CONST TYPE >(new $1_ltype(($1_ltype &)$1)); %} +%{ *(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > **)&$result = new SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE >(new $1_ltype(($1_ltype &)$1)); %} // plain pointer -%typemap(in) CONST TYPE * (SWIG_INTRUSIVE_PTR_QNAMESPACE::shared_ptr< CONST TYPE > *smartarg = 0) %{ - smartarg = *(SWIG_INTRUSIVE_PTR_QNAMESPACE::shared_ptr< CONST TYPE > **)&$input; +%typemap(in) CONST TYPE * (SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > *smartarg = 0) %{ + smartarg = *(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > **)&$input; $1 = (TYPE *)(smartarg ? smartarg->get() : 0); %} %typemap(out, fragment="SWIG_null_deleter") CONST TYPE * %{ - *(SWIG_INTRUSIVE_PTR_QNAMESPACE::shared_ptr< CONST TYPE > **)&$result = $1 ? new SWIG_INTRUSIVE_PTR_QNAMESPACE::shared_ptr< CONST TYPE >($1 SWIG_NO_NULL_DELETER_$owner) : 0; + *(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > **)&$result = $1 ? new SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE >($1 SWIG_NO_NULL_DELETER_$owner) : 0; %} // plain reference %typemap(in) CONST TYPE & %{ - $1 = ($1_ltype)((*(SWIG_INTRUSIVE_PTR_QNAMESPACE::shared_ptr< CONST TYPE > **)&$input) ? (*(SWIG_INTRUSIVE_PTR_QNAMESPACE::shared_ptr< CONST TYPE > **)&$input)->get() : 0); + $1 = ($1_ltype)((*(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > **)&$input) ? (*(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > **)&$input)->get() : 0); if(!$1) { SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "$1_type reference is null"); return $null; } %} %typemap(out, fragment="SWIG_null_deleter") CONST TYPE & -%{ *(SWIG_INTRUSIVE_PTR_QNAMESPACE::shared_ptr< CONST TYPE > **)&$result = new SWIG_INTRUSIVE_PTR_QNAMESPACE::shared_ptr< CONST TYPE >($1 SWIG_NO_NULL_DELETER_$owner); %} +%{ *(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > **)&$result = new SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE >($1 SWIG_NO_NULL_DELETER_$owner); %} // plain pointer by reference %typemap(in) CONST TYPE *& ($*1_ltype temp = 0) -%{ temp = ((*(SWIG_INTRUSIVE_PTR_QNAMESPACE::shared_ptr< CONST TYPE > **)&$input) ? (*(SWIG_INTRUSIVE_PTR_QNAMESPACE::shared_ptr< CONST TYPE > **)&$input)->get() : 0); +%{ temp = ((*(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > **)&$input) ? (*(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > **)&$input)->get() : 0); $1 = &temp; %} %typemap(out, fragment="SWIG_null_deleter") CONST TYPE *& -%{ *(SWIG_INTRUSIVE_PTR_QNAMESPACE::shared_ptr< CONST TYPE > **)&$result = new SWIG_INTRUSIVE_PTR_QNAMESPACE::shared_ptr< CONST TYPE >(*$1 SWIG_NO_NULL_DELETER_$owner); %} +%{ *(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > **)&$result = new SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE >(*$1 SWIG_NO_NULL_DELETER_$owner); %} -%typemap(in) SWIG_INTRUSIVE_PTR_QNAMESPACE::shared_ptr< CONST TYPE > swigSharedPtrUpcast ($&1_type smartarg) %{ +%typemap(in) SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > swigSharedPtrUpcast ($&1_type smartarg) %{ // shared_ptr by value smartarg = *($&1_ltype*)&$input; if (smartarg) $1 = *smartarg; %} -%typemap(out) SWIG_INTRUSIVE_PTR_QNAMESPACE::shared_ptr< CONST TYPE > ANY_TYPE_SWIGSharedPtrUpcast %{ +%typemap(out) SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > ANY_TYPE_SWIGSharedPtrUpcast %{ *($&1_ltype*)&$result = $1 ? new $1_ltype($1) : 0; %} @@ -447,10 +447,10 @@ } // CONST version needed ???? also for C# -%typemap(jtype, nopgcpp="1") SWIG_INTRUSIVE_PTR_QNAMESPACE::shared_ptr< TYPE > swigSharedPtrUpcast "long" -%typemap(jtype, nopgcpp="1") SWIG_INTRUSIVE_PTR_QNAMESPACE::shared_ptr< CONST TYPE > swigSharedPtrUpcast "long" +%typemap(jtype, nopgcpp="1") SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< TYPE > swigSharedPtrUpcast "long" +%typemap(jtype, nopgcpp="1") SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > swigSharedPtrUpcast "long" -%template() SWIG_INTRUSIVE_PTR_QNAMESPACE::shared_ptr< CONST TYPE >; +%template() SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE >; %enddef This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ol...@us...> - 2009-01-05 22:40:10
|
Revision: 11030 http://swig.svn.sourceforge.net/swig/?rev=11030&view=rev Author: olly Date: 2009-01-05 22:40:07 +0000 (Mon, 05 Jan 2009) Log Message: ----------- Mark SWIGPERL5, SWIGPHP5, and SWIGTCL8 as deprecated in the source code and remove documentation of them. Modified Paths: -------------- trunk/CHANGES.current trunk/Doc/Manual/Preprocessor.html trunk/Source/Modules/perl5.cxx trunk/Source/Modules/php.cxx trunk/Source/Modules/tcl8.cxx Modified: trunk/CHANGES.current =================================================================== --- trunk/CHANGES.current 2009-01-05 17:19:32 UTC (rev 11029) +++ trunk/CHANGES.current 2009-01-05 22:40:07 UTC (rev 11030) @@ -1,6 +1,10 @@ Version 1.3.37 (30 December 2008) ================================= +2009-01-05: olly + Mark SWIGPERL5, SWIGPHP5, and SWIGTCL8 as deprecated in the source + code and remove documentation of them. + 2008-12-30: wsfulton Bug #2430756. All the languages now define a macro in the generated C/C++ wrapper file indicating which language is being wrapped. The macro name is the Modified: trunk/Doc/Manual/Preprocessor.html =================================================================== --- trunk/Doc/Manual/Preprocessor.html 2009-01-05 17:19:32 UTC (rev 11029) +++ trunk/Doc/Manual/Preprocessor.html 2009-01-05 22:40:07 UTC (rev 11030) @@ -120,16 +120,13 @@ SWIGOCAML Defined when using Ocaml SWIGOCTAVE Defined when using Octave SWIGPERL Defined when using Perl -SWIGPERL5 Defined when using Perl5 SWIGPHP Defined when using PHP -SWIGPHP5 Defined when using PHP5 SWIGPIKE Defined when using Pike SWIGPYTHON Defined when using Python SWIGR Defined when using R SWIGRUBY Defined when using Ruby SWIGSEXP Defined when using S-expressions SWIGTCL Defined when using Tcl -SWIGTCL8 Defined when using Tcl8.0 SWIGXML Defined when using XML </pre></div> Modified: trunk/Source/Modules/perl5.cxx =================================================================== --- trunk/Source/Modules/perl5.cxx 2009-01-05 17:19:32 UTC (rev 11029) +++ trunk/Source/Modules/perl5.cxx 2009-01-05 22:40:07 UTC (rev 11030) @@ -207,6 +207,7 @@ } Preprocessor_define("SWIGPERL 1", 0); + // SWIGPERL5 is deprecated, and no longer documented. Preprocessor_define("SWIGPERL5 1", 0); SWIG_typemap_lang("perl5"); SWIG_config_file("perl5.swg"); Modified: trunk/Source/Modules/php.cxx =================================================================== --- trunk/Source/Modules/php.cxx 2009-01-05 17:19:32 UTC (rev 11029) +++ trunk/Source/Modules/php.cxx 2009-01-05 22:40:07 UTC (rev 11030) @@ -239,6 +239,7 @@ } Preprocessor_define("SWIGPHP 1", 0); + // SWIGPHP5 is deprecated, and no longer documented. Preprocessor_define("SWIGPHP5 1", 0); SWIG_typemap_lang("php"); SWIG_config_file("php.swg"); Modified: trunk/Source/Modules/tcl8.cxx =================================================================== --- trunk/Source/Modules/tcl8.cxx 2009-01-05 17:19:32 UTC (rev 11029) +++ trunk/Source/Modules/tcl8.cxx 2009-01-05 22:40:07 UTC (rev 11030) @@ -121,6 +121,7 @@ } Preprocessor_define("SWIGTCL 1", 0); + // SWIGTCL8 is deprecated, and no longer documented. Preprocessor_define("SWIGTCL8 1", 0); SWIG_typemap_lang("tcl8"); SWIG_config_file("tcl8.swg"); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <xav...@us...> - 2009-01-10 00:20:51
|
Revision: 11047 http://swig.svn.sourceforge.net/swig/?rev=11047&view=rev Author: xavier98 Date: 2009-01-10 00:20:46 +0000 (Sat, 10 Jan 2009) Log Message: ----------- Octave: add {save,load}_{ascii,binary,hdf} functions that silently do nothing; give default operator mappings a more conventional suffix; fix test li_std_string_extra. Modified Paths: -------------- trunk/Examples/test-suite/octave/li_std_string_extra_runme.m trunk/Lib/octave/octcontainer.swg trunk/Lib/octave/octopers.swg trunk/Lib/octave/octrun.swg trunk/Lib/octave/std_basic_string.i Modified: trunk/Examples/test-suite/octave/li_std_string_extra_runme.m =================================================================== --- trunk/Examples/test-suite/octave/li_std_string_extra_runme.m 2009-01-09 23:38:14 UTC (rev 11046) +++ trunk/Examples/test-suite/octave/li_std_string_extra_runme.m 2009-01-10 00:20:46 UTC (rev 11047) @@ -23,16 +23,16 @@ s = li_std_string_extra.string("he"); #s += "ll" -#s.append('o') +#s.append("ll") s = s + "llo"; if (s != x) error("bad string mapping: %s, %s", s, x); endif -if (s[1:4] != x[1:4]) - error("bad string mapping") -endif +#if (s(1:4) != x(1:4)) +# error("bad string mapping") +#endif if (li_std_string_extra.test_value(s) != x) error("bad string mapping") @@ -63,11 +63,11 @@ error("bad string mapping") endif -if ("hello" + b != "hello world") - error("bad string mapping") -endif +#if ("hello" + b != "hello world") +# error("bad string mapping") +#endif -c = ("hello" + b) +c = (li_std_string_extra.string("hello") + b); if (c.find_last_of("l") != 9) error("bad string mapping") endif @@ -157,6 +157,6 @@ error endif -if (li_std_string_extra.c_null() != None) - error -endif +#if (li_std_string_extra.c_null() != None) +# error +#endif Modified: trunk/Lib/octave/octcontainer.swg =================================================================== --- trunk/Lib/octave/octcontainer.swg 2009-01-09 23:38:14 UTC (rev 11046) +++ trunk/Lib/octave/octcontainer.swg 2009-01-10 00:20:46 UTC (rev 11047) @@ -513,11 +513,11 @@ return x; } - value_type __paren(difference_type i) throw (std::out_of_range) { + value_type __paren__(difference_type i) throw (std::out_of_range) { return *(swig::cgetpos(self, i)); } - void __paren_asgn(difference_type i, value_type x) throw (std::out_of_range) { + void __paren_asgn__(difference_type i, value_type x) throw (std::out_of_range) { *(swig::getpos(self,i)) = x; } Modified: trunk/Lib/octave/octopers.swg =================================================================== --- trunk/Lib/octave/octopers.swg 2009-01-09 23:38:14 UTC (rev 11046) +++ trunk/Lib/octave/octopers.swg 2009-01-10 00:20:46 UTC (rev 11047) @@ -6,68 +6,68 @@ // operators supported in Octave, and the methods they are routed to -// __brace a{args} -// __brace_asgn a{args} = rhs -// __paren a(args) -// __paren_asgn a(args) = rhs -// __str generates string rep +// __brace__ a{args} +// __brace_asgn__ a{args} = rhs +// __paren__ a(args) +// __paren_asgn__ a(args) = rhs +// __str__ generates string rep -// __not !a -// __uplus +a -// __uminus -a -// __transpose a.' -// __hermitian a' -// __incr a++ -// __decr a-- -// __add a + b -// __sub a - b -// __mul a * b -// __div a / b -// __pow a ^ b -// __ldiv a \ b -// __lshift a << b -// __rshift a >> b -// __lt a < b -// __le a <= b -// __eq a == b -// __ge a >= b -// __gt a > b -// __ne a != b -// __el_mul a .* b -// __el_div a ./ b -// __el_pow a .^ b -// __el_ldiv a .\ b -// __el_and a & b -// __el_or a | b +// __not__ !a +// __uplus__ +a +// __uminus__ -a +// __transpose__ a.' +// __hermitian__ a' +// __incr__ a++ +// __decr__ a-- +// __add__ a + b +// __sub__ a - b +// __mul__ a * b +// __div__ a / b +// __pow__ a ^ b +// __ldiv__ a \ b +// __lshift__ a << b +// __rshift__ a >> b +// __lt__ a < b +// __le__ a <= b +// __eq__ a == b +// __ge__ a >= b +// __gt__ a > b +// __ne__ a != b +// __el_mul__ a .* b +// __el_div__ a ./ b +// __el_pow__ a .^ b +// __el_ldiv__ a .\ b +// __el_and__ a & b +// __el_or__ a | b // operators supported in C++, and the methods that route to them -%rename(__add) *::operator+; -%rename(__add) *::operator+(); -%rename(__add) *::operator+() const; -%rename(__sub) *::operator-; -%rename(__uminus) *::operator-(); -%rename(__uminus) *::operator-() const; -%rename(__mul) *::operator*; -%rename(__div) *::operator/; -%rename(__mod) *::operator%; -%rename(__lshift) *::operator<<; -%rename(__rshift) *::operator>>; -%rename(__el_and) *::operator&&; -%rename(__el_or) *::operator||; -%rename(__xor) *::operator^; -%rename(__invert) *::operator~; -%rename(__lt) *::operator<; -%rename(__le) *::operator<=; -%rename(__gt) *::operator>; -%rename(__ge) *::operator>=; -%rename(__eq) *::operator==; -%rename(__ne) *::operator!=; -%rename(__not) *::operator!; -%rename(__incr) *::operator++; -%rename(__decr) *::operator--; -%rename(__paren) *::operator(); -%rename(__brace) *::operator[]; +%rename(__add__) *::operator+; +%rename(__add__) *::operator+(); +%rename(__add__) *::operator+() const; +%rename(__sub__) *::operator-; +%rename(__uminus__) *::operator-(); +%rename(__uminus__) *::operator-() const; +%rename(__mul__) *::operator*; +%rename(__div__) *::operator/; +%rename(__mod__) *::operator%; +%rename(__lshift__) *::operator<<; +%rename(__rshift__) *::operator>>; +%rename(__el_and__) *::operator&&; +%rename(__el_or__) *::operator||; +%rename(__xor__) *::operator^; +%rename(__invert__) *::operator~; +%rename(__lt__) *::operator<; +%rename(__le__) *::operator<=; +%rename(__gt__) *::operator>; +%rename(__ge__) *::operator>=; +%rename(__eq__) *::operator==; +%rename(__ne__) *::operator!=; +%rename(__not__) *::operator!; +%rename(__incr__) *::operator++; +%rename(__decr__) *::operator--; +%rename(__paren__) *::operator(); +%rename(__brace__) *::operator[]; // Ignored inplace operators %ignoreoperator(PLUSEQ) operator+=; Modified: trunk/Lib/octave/octrun.swg =================================================================== --- trunk/Lib/octave/octrun.swg 2009-01-09 23:38:14 UTC (rev 11046) +++ trunk/Lib/octave/octrun.swg 2009-01-10 00:20:46 UTC (rev 11047) @@ -589,7 +589,7 @@ // index operator else { if (ops[skip] == '(' || ops[skip] == '{') { - const char *op_name = ops[skip] == '(' ? "__paren" : "__brace"; + const char *op_name = ops[skip] == '(' ? "__paren__" : "__brace__"; octave_value_list args; args.append(*idx_it++); ++skip; @@ -628,7 +628,7 @@ } else if (ops[skip] == '(' || ops[skip] == '{') { - const char *op_name = ops[skip] == '(' ? "__paren_asgn" : "__brace_asgn"; + const char *op_name = ops[skip] == '(' ? "__paren_asgn__" : "__brace_asgn__"; member_value_pair *m = find_member(op_name, false); if (m) { octave_value_list args; @@ -666,19 +666,19 @@ virtual bool is_string() const { octave_swig_type *nc_this = const_cast < octave_swig_type *>(this); - return !!nc_this->find_member("__str", false); + return !!nc_this->find_member("__str__", false); } virtual std::string string_value(bool force = false) const { octave_swig_type *nc_this = const_cast < octave_swig_type *>(this); - member_value_pair *m = nc_this->find_member("__str", false); + member_value_pair *m = nc_this->find_member("__str__", false); if (!m) { - error("__str method not defined"); + error("__str__ method not defined"); return std::string(); } octave_value_list outarg = nc_this->member_invoke(m, octave_value_list(nc_this->as_value()), 1); if (outarg.length() < 1 || !outarg(0).is_string()) { - error("__str method did not return a string"); + error("__str__ method did not return a string"); return std::string(); } return outarg(0).string_value(); @@ -700,6 +700,35 @@ return keys; } + virtual bool save_ascii (std::ostream& os) { + return true; + } + + virtual bool load_ascii (std::istream& is) { + return true; + } + + virtual bool save_binary (std::ostream& os, bool& save_as_floats) { + return true; + } + + virtual bool load_binary (std::istream& is, bool swap, + oct_mach_info::float_format fmt) { + return true; + } + +#if defined (HAVE_HDF5) + virtual bool + save_hdf5 (hid_t loc_id, const char *name, bool save_as_floats) { + return true; + } + + virtual bool + load_hdf5 (hid_t loc_id, const char *name, bool have_h5giterate_bug) { + return true; + } +#endif + virtual octave_value convert_to_str(bool pad = false, bool force = false, char type = '"') const { return string_value(); } @@ -724,7 +753,7 @@ assert(ost); octave_value ret; - if (ost->dispatch_unary_op(std::string("__") + op_name, ret)) + if (ost->dispatch_unary_op(std::string("__") + op_name + std::string("__"), ret)) return ret; std::string symbol = "op_" + ost->swig_type_name() + "_" + op_name; octave_value_list args; @@ -741,7 +770,7 @@ octave_swig_type *rhs_ost = Swig::swig_value_deref(rhs); octave_value ret; - if (lhs_ost && lhs_ost->dispatch_binary_op(std::string("__") + op_name, rhs, ret)) + if (lhs_ost && lhs_ost->dispatch_binary_op(std::string("__") + op_name + std::string("__"), rhs, ret)) return ret; std::string symbol; @@ -869,6 +898,29 @@ virtual string_vector map_keys() const { return ptr->map_keys(); } + virtual bool save_ascii (std::ostream& os) + { return ptr->save_ascii(os); } + + virtual bool load_ascii (std::istream& is) + { return ptr->load_ascii(is); } + + virtual bool save_binary (std::ostream& os, bool& save_as_floats) + { return ptr->save_binary(os, save_as_floats); } + + virtual bool load_binary (std::istream& is, bool swap, + oct_mach_info::float_format fmt) + { return ptr->load_binary(is, swap, fmt); } + +#if defined (HAVE_HDF5) + virtual bool + save_hdf5 (hid_t loc_id, const char *name, bool save_as_floats) + { return ptr->save_hdf5(loc_id, name, save_as_floats); } + + virtual bool + load_hdf5 (hid_t loc_id, const char *name, bool have_h5giterate_bug) + { return ptr->load_hdf5(loc_id, name, have_h5giterate_bug); } +#endif + virtual octave_value convert_to_str(bool pad = false, bool force = false, char type = '"') const { return ptr->convert_to_str(pad, force, type); } @@ -917,6 +969,37 @@ void print(std::ostream &os, bool pr_as_read_syntax = false) const { os << "swig packed type: name = " << (type ? type->name : std::string()) << ", len = " << buf.size() << std::endl; } + + + virtual bool save_ascii (std::ostream& os) { + return true; + } + + virtual bool load_ascii (std::istream& is) { + return true; + } + + virtual bool save_binary (std::ostream& os, bool& save_as_floats) { + return true; + } + + virtual bool load_binary (std::istream& is, bool swap, + oct_mach_info::float_format fmt) { + return true; + } + +#if defined (HAVE_HDF5) + virtual bool + save_hdf5 (hid_t loc_id, const char *name, bool save_as_floats) { + return true; + } + + virtual bool + load_hdf5 (hid_t loc_id, const char *name, bool have_h5giterate_bug) { + return true; + } +#endif + private: DECLARE_OCTAVE_ALLOCATOR; DECLARE_OV_TYPEID_FUNCTIONS_AND_DATA; Modified: trunk/Lib/octave/std_basic_string.i =================================================================== --- trunk/Lib/octave/std_basic_string.i 2009-01-09 23:38:14 UTC (rev 11046) +++ trunk/Lib/octave/std_basic_string.i 2009-01-10 00:20:46 UTC (rev 11047) @@ -1,5 +1,6 @@ #if !defined(SWIG_STD_STRING) #define SWIG_STD_BASIC_STRING +#define SWIG_STD_MODERN_STL %include <octcontainer.swg> @@ -9,39 +10,22 @@ %fragment(SWIG_AsPtr_frag(std::basic_string<char>),"header", fragment="SWIG_AsCharPtrAndSize") { SWIGINTERN int -SWIG_AsPtr(std::basic_string<char>)(PyObject* obj, std::string **val) +SWIG_AsPtr(std::basic_string<char>)(octave_value obj, std::string **val) { - static swig_type_info* string_info = - SWIG_TypeQuery("std::basic_string<char> *"); - std::string *vptr; - if (SWIG_ConvertPtr(obj, (void**)&vptr, string_info, 0) == SWIG_OK) { - if (val) *val = vptr; - return SWIG_OLDOBJ; - } else { - PyErr_Clear(); - char* buf = 0 ; size_t size = 0; int alloc = 0; - if (SWIG_AsCharPtrAndSize(obj, &buf, &size, &alloc) == SWIG_OK) { - if (buf) { - if (val) *val = new std::string(buf, size - 1); - if (alloc == SWIG_NEWOBJ) %delete_array(buf); - return SWIG_NEWOBJ; - } - } else { - PyErr_Clear(); - } - if (val) { - SWIG_PYTHON_THREAD_BEGIN_BLOCK; - PyErr_SetString(PyExc_TypeError,"a string is expected"); - SWIG_PYTHON_THREAD_END_BLOCK; - } - return 0; + if (obj.is_string()) { + if (val) + *val = new std::string(obj.string_value()); + return SWIG_NEWOBJ; } -} + if (val) + error("a string is expected"); + return 0; } +} %fragment(SWIG_From_frag(std::basic_string<char>),"header", fragment="SWIG_FromCharPtrAndSize") { -SWIGINTERNINLINE PyObject* +SWIGINTERNINLINE octave_value SWIG_From(std::basic_string<char>)(const std::string& s) { return SWIG_FromCharPtrAndSize(s.data(), s.size()); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wsf...@us...> - 2009-01-10 01:15:07
|
Revision: 11049 http://swig.svn.sourceforge.net/swig/?rev=11049&view=rev Author: wsfulton Date: 2009-01-10 01:15:03 +0000 (Sat, 10 Jan 2009) Log Message: ----------- Patch #1992756 from Colin McDonald - %contract not working for classes in namespace Modified Paths: -------------- trunk/CHANGES.current trunk/Examples/test-suite/contract.i trunk/Examples/test-suite/python/contract_runme.py trunk/Source/Modules/contract.cxx Modified: trunk/CHANGES.current =================================================================== --- trunk/CHANGES.current 2009-01-10 00:29:37 UTC (rev 11048) +++ trunk/CHANGES.current 2009-01-10 01:15:03 UTC (rev 11049) @@ -1,6 +1,10 @@ Version 1.3.37 (30 December 2008) ================================= +2009-01-10: wsfulton + Patch #1992756 from Colin McDonald - %contract not working for classes + in namespace + 2009-01-05: olly Mark SWIGPERL5, SWIGPHP5, and SWIGTCL8 as deprecated in the source code and remove documentation of them. Modified: trunk/Examples/test-suite/contract.i =================================================================== --- trunk/Examples/test-suite/contract.i 2009-01-10 00:29:37 UTC (rev 11048) +++ trunk/Examples/test-suite/contract.i 2009-01-10 01:15:03 UTC (rev 11049) @@ -201,3 +201,33 @@ }; %} + +// Namespace + +%{ +namespace myNames { + +class myClass +{ + public: + myClass(int i) {} +}; + +} +%} + +namespace myNames { + +%contract myClass::myClass( int i ) { +require: + i > 0; +} + +class myClass +{ + public: + myClass(int i) {} +}; + +} + Modified: trunk/Examples/test-suite/python/contract_runme.py =================================================================== --- trunk/Examples/test-suite/python/contract_runme.py 2009-01-10 00:29:37 UTC (rev 11048) +++ trunk/Examples/test-suite/python/contract_runme.py 2009-01-10 01:15:03 UTC (rev 11049) @@ -133,3 +133,11 @@ except: pass +#Namespace +my = contract.myClass(1) +try: + my = contract.myClass(0) + print "Failed! constructor preassertion" +except: + pass + Modified: trunk/Source/Modules/contract.cxx =================================================================== --- trunk/Source/Modules/contract.cxx 2009-01-10 00:29:37 UTC (rev 11048) +++ trunk/Source/Modules/contract.cxx 2009-01-10 01:15:03 UTC (rev 11049) @@ -46,6 +46,7 @@ int extendDirective(Node *n); int importDirective(Node *n); int includeDirective(Node *n); + int namespaceDeclaration(Node *n); int classDeclaration(Node *n); virtual int top(Node *n); }; @@ -320,16 +321,23 @@ int Contracts::externDeclaration(Node *n) { return emit_children(n); } + int Contracts::extendDirective(Node *n) { return emit_children(n); } + int Contracts::importDirective(Node *n) { return emit_children(n); } + int Contracts::includeDirective(Node *n) { return emit_children(n); } +int Contracts::namespaceDeclaration(Node *n) { + return emit_children(n); +} + int Contracts::classDeclaration(Node *n) { int ret = SWIG_OK; InClass = 1; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dr...@us...> - 2009-01-11 00:08:48
|
Revision: 11052 http://swig.svn.sourceforge.net/swig/?rev=11052&view=rev Author: drjoe Date: 2009-01-11 00:08:37 +0000 (Sun, 11 Jan 2009) Log Message: ----------- Fix integer handling in r. unsigned values where getting handled incorrected as reals leading to crashes Modified Paths: -------------- trunk/CHANGES.current trunk/Lib/r/r.swg trunk/Lib/r/rtype.swg Modified: trunk/CHANGES.current =================================================================== --- trunk/CHANGES.current 2009-01-10 23:30:10 UTC (rev 11051) +++ trunk/CHANGES.current 2009-01-11 00:08:37 UTC (rev 11052) @@ -1,6 +1,10 @@ Version 1.3.37 (30 December 2008) ================================= +2009-01-10: drjoe + Fix integer handling in r to deal correctly with signed + and unsigned issues + 2009-01-10: wsfulton Patch #1992756 from Colin McDonald - %contract not working for classes in namespace Modified: trunk/Lib/r/r.swg =================================================================== --- trunk/Lib/r/r.swg 2009-01-10 23:30:10 UTC (rev 11051) +++ trunk/Lib/r/r.swg 2009-01-11 00:08:37 UTC (rev 11052) @@ -55,7 +55,8 @@ %typemap(out) void ""; -%typemap(in) int *, int[ANY] %{ +%typemap(in) int *, int[ANY], + long *, long[ANY] %{ $1 = INTEGER($input); %} @@ -77,7 +78,7 @@ %} -%typemap(scheck) int %{ +%typemap(scheck) int, long %{ if(length($input) > 1) { warning("using only the first element of $input") } @@ -157,11 +158,12 @@ } -%typemap(in,noblock=1) int { +%typemap(in,noblock=1) int, long +{ $1 = %static_cast(INTEGER($input)[0], $1_ltype); } -%typemap(out,noblock=1) int +%typemap(out,noblock=1) int, long "$result = Rf_ScalarInteger($1);"; @@ -172,19 +174,17 @@ %typemap(out,noblock=1) bool "$result = Rf_ScalarLogical($1);"; -%typemap(in,noblock=1) unsigned int, - unsigned long, +%typemap(in,noblock=1) float, - double, - long + double { $1 = %static_cast(REAL($input)[0], $1_ltype); } +/* Why is this here ? */ +/* %typemap(out,noblock=1) unsigned int * + "$result = ScalarReal(*($1));"; */ -%typemap(out,noblock=1) unsigned int * - "$result = ScalarReal(*($1));"; - %Rruntime %{ setMethod('[', "ExternalReference", function(x,i,j, ..., drop=TRUE) Modified: trunk/Lib/r/rtype.swg =================================================================== --- trunk/Lib/r/rtype.swg 2009-01-10 23:30:10 UTC (rev 11051) +++ trunk/Lib/r/rtype.swg 2009-01-11 00:08:37 UTC (rev 11052) @@ -8,12 +8,18 @@ %apply int {std::size_t} %apply int {ptrdiff_t} %apply int {std::ptrdiff_t} +%apply int {signed int} +%apply int {unsigned int} +%apply int {short} +%apply int {unsigned short} -%typemap("rtype") long, long * "numeric"; -%typemap("rtype") unsigned long, - unsigned long * "numeric"; -%typemap("rtype") unsigned int, - unsigned int * "numeric"; +%typemap("rtype") long, long *, long & "numeric"; +%apply long {long long} +%apply long {signed long long} +%apply long {unsigned long long} +%apply long {unsigned long} +%apply long {unsigned long} + %typemap("rtype") double, double*, double & "numeric"; %typemap("rtype") float, float *, float & "numeric"; %typemap("rtype") char *, char ** "character"; @@ -41,12 +47,8 @@ %typemap(scoercein) int, int *, int & %{ $input = as.integer($input); %} -%typemap(scoercein) ptrdiff_t, ptrdiff_t *, ptrdiff_t & +%typemap(scoercein) long, long *, long & %{ $input = as.integer($input); %} -%typemap(scoercein) unsigned long, unsigned long *, unsigned long & - %{ $input = as.integer($input); %} -%typemap(scoercein) unsigned int, unsigned int *, unsigned int & - %{ $input = as.integer($input); %} %typemap(scoercein) double, double *, double & %{ %} %typemap(scoercein) float, float *, float & @@ -90,45 +92,16 @@ %typemap(scoercein) bool, bool *, bool & "$input = as.logical($input) "; -/* %typemap(scoercein) int, int *, int &, int[ANY], - size_t, - std::size_t, - size_t &, - std::size_t & + long, + long *, + long &, + long[ANY] "$input = as.integer($input) "; - -%typemap(scoercein) unsigned int, - unsigned long, - double, - float, - long, - long long, - unsigned int[], - unsigned long[], - double[], - float[], - long[], - long long[], - unsigned int[ANY], - unsigned long[ANY], - double[ANY], - float[ANY], - long[ANY], - long long[ANY], - unsigned int *, - unsigned long *, - double*, - float*, - long*, - long long * -%{ $input = as.numeric($input) %} -*/ - %typemap(scoercein) char *, string, std::string, string &, std::string & %{ $input = as($input, "character") %} @@ -156,30 +129,20 @@ %typemap(scoerceout) char, char *, char &, - unsigned int, - unsigned int &, - unsigned long, - unsigned long &, double, double &, float, float &, - long, - long &, - long long, - long long &, int, int &, + long, + long &, bool, bool &, string, std::string, string &, std::string &, - size_t, - std::size_t, - size_t &, - std::size_t &, void %{ %} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dr...@us...> - 2009-01-12 08:57:24
|
Revision: 11059 http://swig.svn.sourceforge.net/swig/?rev=11059&view=rev Author: drjoe Date: 2009-01-12 08:57:16 +0000 (Mon, 12 Jan 2009) Log Message: ----------- put in integer fixes Modified Paths: -------------- trunk/CHANGES.current trunk/Lib/r/r.swg trunk/Lib/r/rtype.swg Modified: trunk/CHANGES.current =================================================================== --- trunk/CHANGES.current 2009-01-12 08:54:36 UTC (rev 11058) +++ trunk/CHANGES.current 2009-01-12 08:57:16 UTC (rev 11059) @@ -1,6 +1,9 @@ Version 1.3.37 (30 December 2008) ================================= +2009-01-12: drjoe + Fixed handling of integer arrays + 2009-01-10: drjoe Fix integer handling in r to deal correctly with signed and unsigned issues Modified: trunk/Lib/r/r.swg =================================================================== --- trunk/Lib/r/r.swg 2009-01-12 08:54:36 UTC (rev 11058) +++ trunk/Lib/r/r.swg 2009-01-12 08:57:16 UTC (rev 11059) @@ -56,14 +56,62 @@ %typemap(out) void ""; %typemap(in) int *, int[ANY], - long *, long[ANY] %{ - $1 = INTEGER($input); -%} + signed int *, signed int[ANY], + unsigned int *, unsigned int[ANY], + short *, short[ANY], + signed short *, signed short[ANY], + unsigned short *, unsigned short[ANY], + long *, long[ANY], + signed long *, signed long[ANY], + unsigned long *, unsigned long[ANY], + long long *, long long[ANY], + signed long long *, signed long long[ANY], + unsigned long long *, unsigned long long[ANY] + +{ +{ int _rswigi; + int _rswiglen = LENGTH($input); + $1 = %static_cast(calloc(sizeof($1_basetype), _rswiglen), $1_ltype); + for (_rswigi=0; _rswigi< _rswiglen; _rswigi++) { + $1[_rswigi] = INTEGER($input)[_rswigi]; + } +} +} -%typemap(in) double *, double[ANY] %{ - $1 = REAL($input); +%typemap(in) float *, float[ANY], + double *, double[ANY] + +{ +{ int _rswigi; + int _rswiglen = LENGTH($input); + $1 = %static_cast(calloc(sizeof($1_basetype), _rswiglen), $1_ltype); + for (_rswigi=0; _rswigi<_rswiglen; _rswigi++) { + $1[_rswigi] = REAL($input)[_rswigi]; + } +} +} + +%typemap(freearg,noblock=1) int *, int[ANY], + signed int *, signed int[ANY], + unsigned int *, unsigned int[ANY], + short *, short[ANY], + signed short *, signed short[ANY], + unsigned short *, unsigned short[ANY], + long *, long[ANY], + signed long *, signed long[ANY], + unsigned long *, unsigned long[ANY], + long long *, long long[ANY], + signed long long *, signed long long[ANY], + unsigned long long *, unsigned long long[ANY], + float *, float[ANY], + double *, double[ANY] +%{ + free($1); %} + + + /* Shoul dwe recycle to make the length correct. And warn if length() > the dimension. */ @@ -92,8 +140,6 @@ %include <typemaps/swigtypemaps.swg> %include <rtype.swg> -%apply int[ANY] { enum SWIGTYPE[ANY] }; - %typemap(in,noblock=1) enum SWIGTYPE[ANY] { $1 = %reinterpret_cast(INTEGER($input), $1_ltype); } Modified: trunk/Lib/r/rtype.swg =================================================================== --- trunk/Lib/r/rtype.swg 2009-01-12 08:54:36 UTC (rev 11058) +++ trunk/Lib/r/rtype.swg 2009-01-12 08:57:16 UTC (rev 11059) @@ -3,7 +3,7 @@ for use in class representations. */ -%typemap("rtype") int, int *, int & "numeric"; +%typemap("rtype") int, int *, int & "integer"; %apply int {size_t} %apply int {std::size_t} %apply int {ptrdiff_t} @@ -13,12 +13,12 @@ %apply int {short} %apply int {unsigned short} -%typemap("rtype") long, long *, long & "numeric"; +%typemap("rtype") long, long *, long & "integer"; %apply long {long long} %apply long {signed long long} %apply long {unsigned long long} +%apply long {signed long} %apply long {unsigned long} -%apply long {unsigned long} %typemap("rtype") double, double*, double & "numeric"; %typemap("rtype") float, float *, float & "numeric"; @@ -143,7 +143,24 @@ std::string, string &, std::string &, - void + void, + signed int, + signed int &, + unsigned int, + unsigned int &, + short, + short &, + unsigned short, + unsigned short &, + long long, + signed long long, + signed long long &, + unsigned long long, + unsigned long long &, + signed long, + signed long &, + unsigned long, + unsigned long & %{ %} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mgo...@us...> - 2009-01-13 02:22:10
|
Revision: 11061 http://swig.svn.sourceforge.net/swig/?rev=11061&view=rev Author: mgossage Date: 2009-01-13 01:42:25 +0000 (Tue, 13 Jan 2009) Log Message: ----------- [Lua] Added contract support for requiring that unsigned numbers are >=0 Rewrote much of Examples/Lua/embed3. Added a lot of to the Lua documentation. Modified Paths: -------------- trunk/CHANGES.current trunk/Doc/Manual/Lua.html trunk/Examples/lua/embed3/embed3.cpp trunk/Lib/lua/luatypemaps.swg Modified: trunk/CHANGES.current =================================================================== --- trunk/CHANGES.current 2009-01-12 11:42:27 UTC (rev 11060) +++ trunk/CHANGES.current 2009-01-13 01:42:25 UTC (rev 11061) @@ -1,6 +1,11 @@ Version 1.3.37 (30 December 2008) ================================= +2009-01-13: mgossage + [Lua] Added contract support for requiring that unsigned numbers are >=0 + Rewrote much of Examples/Lua/embed3. + Added a lot of to the Lua documentation. + 2009-01-12: drjoe Fixed handling of integer arrays Modified: trunk/Doc/Manual/Lua.html =================================================================== --- trunk/Doc/Manual/Lua.html 2009-01-12 11:42:27 UTC (rev 11060) +++ trunk/Doc/Manual/Lua.html 2009-01-13 01:42:25 UTC (rev 11061) @@ -34,16 +34,31 @@ <li><a href="#Lua_nn20">C++ templates</a> <li><a href="#Lua_nn21">C++ Smart Pointers</a> <li><a href="#Lua_nn22">C++ Exceptions</a> -<li><a href="#Lua_nn23">Writing your own custom wrappers</a> -<li><a href="#Lua_nn24">Adding additional Lua code</a> </ul> -<li><a href="#Lua_nn25">Details on the Lua binding</a> +<li><a href="#Lua_nn23">Typemaps</a> <ul> -<li><a href="#Lua_nn26">Binding global data into the module.</a> -<li><a href="#Lua_nn27">Userdata and Metatables</a> -<li><a href="#Lua_nn28">Memory management</a> +<li><a href="#Lua_nn24">What is a typemap?</a> +<li><a href="#Lua_nn25">Using typemaps</a> +<li><a href="#Lua_nn26">Typemaps and arrays</a> +<li><a href="#Lua_nn27">Typemaps and pointer-pointer functions</a> </ul> +<li><a href="#Lua_nn28">Writing Typemaps</a> +<ul> +<li><a href="#Lua_nn29">Typemaps you can write</a> +<li><a href="#Lua_nn30">SWIG's Lua-C API</a> </ul> +<li><a href="#Lua_nn31">Customization of your Bindings</a> +<ul> +<li><a href="#Lua_nn32">Writing your own custom wrappers</a> +<li><a href="#Lua_nn33">Adding additional Lua code</a> +</ul> +<li><a href="#Lua_nn34">Details on the Lua binding</a> +<ul> +<li><a href="#Lua_nn35">Binding global data into the module.</a> +<li><a href="#Lua_nn36">Userdata and Metatables</a> +<li><a href="#Lua_nn37">Memory management</a> +</ul> +</ul> </div> <!-- INDEX --> @@ -1003,8 +1018,9 @@ </pre></div> <p> -SWIG is able to throw numeric types, enums, chars, char*'s and std::string's without problem. -However its not so simple for to throw objects. +SWIG is able to throw numeric types, enums, chars, char*'s and std::string's without problem. It has also written typemaps for std::exception and its derived classes, which convert the exception into and error string. </p> +<p> +However its not so simple for to throw other types of objects. Thrown objects are not valid outside the 'catch' block. Therefore they cannot be returned to the interpreter. The obvious ways to overcome this would be to either return a copy of the object, or so convert the object to a string and @@ -1038,10 +1054,6 @@ throw objects which can be copied. </p> <p> -SWIG has typemaps for std::exception and its children already written, so a function which throws any of these will -automatically have its exception converted into an error string. -</p> -<p> If you have your own class which you want output as a string you will need to add a typemap something like this: </p> <div class="code"><pre> @@ -1098,10 +1110,261 @@ </p> -<H3><a name="Lua_nn23"></a>23.3.16 Writing your own custom wrappers</H3> +<H2><a name="Lua_nn23"></a>23.4 Typemaps</H2> +<p>This section explains what typemaps are and the usage of them. The default wrappering behaviour of SWIG is enough in most cases. However sometimes SWIG may need a little additional assistance to know which typemap to apply to provide the best wrappering. This section will be explaining how to use typemaps to best effect</p> +<H3><a name="Lua_nn24"></a>23.4.1 What is a typemap?</H3> + +<p>A typemap is nothing more than a code generation rule that is attached to a specific C datatype. For example, to convert integers from Lua to C, you might define a typemap like this:</p> + +<div class="code"><pre>%module example + +%typemap(in) int { + $1 = (int) lua_tonumber(L,$input); + printf("Received an integer : %d\n",$1); +} +%inline %{ +extern int fact(int n); +%} +</pre></div> + +<p><i>Note: you shouldn't use this typemap, as SWIG already has a typemap for this task. This is purely for example.</i></p> + +<p>Typemaps are always associated with some specific aspect of code generation. In this case, the "in" method refers to the conversion of input arguments to C/C++. The datatype int is the datatype to which the typemap will be applied. The supplied C code is used to convert values. In this code a number of special variable prefaced by a $ are used. The $1 variable is placeholder for a local variable of type int. The $input is the index on the Lua stack for the value to be used.</p> + +<p>When this example is compiled into a Lua module, it operates as follows:</p> + +<div class="targetlang"><pre>> require "example" +> print(example.fact(6)) +Received an integer : 6 +720 +</pre></div> + +<H3><a name="Lua_nn25"></a>23.4.2 Using typemaps</H3> + +<p>There are many ready written typemaps built into SWIG for all common types (int, float, short, long, char*, enum and more), which SWIG uses automatically, with no effort required on your part.</p> + +<p>However for more complex functions which use input/output parameters or arrays, you will need to make use of <typemaps.i>, which contains typemaps for these situations. For example, consider these functions:</p> + +<div class="code"><pre>void add(int x, int y, int *result) { + *result = x + y; +} + +int sub(int *x1, int *y1) { + return *x1-*y1; +} + +void swap(int *sx, int *sy) { + int t=*sx; + *sx=*sy; + *sy=t; +} +</pre></div> + +<p>It is clear to the programmer, that 'result' is an output parameter, 'x1' and 'y1' are input parameters and 'sx' and 'sy' are input/output parameters. However is not apparent to SWIG, so SWIG must to informed about which kind they are, so it can wrapper accordingly.</p> + +<p>One means would be to rename the argument name to help SWIG, eg <tt>void add(int x, int y, int *OUTPUT)</tt>, however it is easier to use the <tt>%apply</tt> to achieve the same result, as shown below.</p> + +<div class="code"><pre>%include <typemaps.i> +%apply int* OUTPUT {int *result}; // int *result is output +%apply int* INPUT {int *x1, int *y1}; // int *x1 and int *y1 are input +%apply int* INOUT {int *sx, int *sy}; // int *sx and int *sy are input and output + +void add(int x, int y, int *result); +int sub(int *x1, int *y1); +void swap(int *sx, int *sy); +</pre></div> + +<p>When wrapped, it gives the following results:</p> + +<div class="targetlang"><pre>> require "example" +> print(example.add(1,2)) +3 +> print(demo.sub(1,2)) +-1 +> a,b=1,2 +> c,d=demo.swap(a,b) +> print(a,b,c,d) +1 2 2 1 +</pre></div> + +<p>Notice, that 'result' is not required in the arguments to call the function, as it an output parameter only. For 'sx' and 'sy' they must be passed in (as they are input), but the original value is not modified (Lua does not have a pass by reference feature). The modified results are then returned as two return values. All INPUT/OUTPUT/INOUT arguments will behave in a similar manner.</p> + +<p>Note: C++ references must be handled exactly the same way. However SWIG will automatically wrap a <tt>const int&</tt> as an input parameter (since that it obviously input).</p> + +<H3><a name="Lua_nn26"></a>23.4.3 Typemaps and arrays</H3> + +<p>Arrays present a challenge for SWIG, because like pointers SWIG does not know whether these are input or output values, nor +does SWIG have any indication of how large an array should be. However with the proper guidance SWIG can easily wrapper +arrays for convenient usage.</p> + +<p>Given the functions:</p> +<div class="code"><pre>extern void sort_int(int* arr, int len); +extern void sort_double(double* arr, int len); +</pre></div> + +<p>There are basically two ways that SWIG can deal with this. The first way, uses the <tt><carrays.i></tt> library +to create an array in C/C++ then this can be filled within Lua and passed into the function. It works, but its a bit tedious. +More details can be found in the <a href="Library.html#Library_nn5">carrays.i</a> documention.</p> + +<p>The second and more intuitive way, would be to pass a Lua table directly into the function, and have SWIG automatically convert between Lua-table and C-array. Within the <tt><typemaps.i></tt> file there are typemaps ready written to perform this task. To use them is again a matter of using %appy in the correct manner.</p> + +<p>The wrapper file below, shows both the use of carrays as well as the use of the typemap to wrap arrays. </p> + +<div class="code"><pre>// using the C-array +%include <carrays.i> +// this declares a batch of function for manipulating C integer arrays +%array_functions(int,int) + +extern void sort_int(int* arr, int len); // the function to wrap + +// using typemaps +%include <typemaps.i> +%apply (double *INOUT,int) {(double* arr,int len)}; + +extern void sort_double(double* arr, int len); // the function to wrap +</pre></div> + +<p>Once wrappered, the functions can both be called, though with different ease of use:</p> + +<div class="targetlang"><pre>require "example" +ARRAY_SIZE=10 + +-- passing a C array to the sort_int() +arr=example.new_int(ARRAY_SIZE) -- create the array +for i=0,ARRAY_SIZE-1 do -- index 0..9 (just like C) + example.int_setitem(arr,i,math.random(1000)) +end +example.sort_int(arr,ARRAY_SIZE) -- call the function +example.delete_int(arr) -- must delete the allocated memory + +-- use a typemap to call with a Lua-table +-- one item of note: the typemap creates a copy, rather than edit-in-place +t={} -- a Lua table +for i=1,ARRAY_SIZE do -- index 1..10 (Lua style) + t[i]=math.random(1000)/10 +end +t=example.sort_double(t) -- replace t with the result +</pre></div> + +<p>Obviously the first version could be made less tedious by writing a Lua function to perform the conversion from a table +to a C-array. The <tt>%luacode</tt> directive is good for this. See SWIG\Examples\lua\arrays for an example of this.</p> + +<p><b>Warning:</b> in C indexes start at ZERO, in Lua indexes start at ONE. SWIG expects C-arrays to be filled for 0..N-1 +and Lua tables to be 1..N, (the indexing follows the norm for the language). In the typemap when it converts the table to an array it quietly changes the indexing accordingly. Take note of this behaviour if you have a C function which returns indexes.</p> + +<p>Note: SWIG also can support arrays of pointers in a similar manner.</p> + +<H3><a name="Lua_nn27"></a>23.4.4 Typemaps and pointer-pointer functions</H3> + +<p>Several C++ libraries use a pointer-pointer functions to create its objects. These functions require a pointer to a pointer which is then filled with the pointer to the new object. Microsoft's COM and DirectX as well as many other libraries have this kind of function. An example is given below:</p> + +<div class="code"><pre>struct iMath; // some structure +int Create_Math(iMath** pptr); // its creator (assume it mallocs) +</pre></div> + +<p>Which would be used with the following C code:</p> + +<div class="code"><pre>iMath* ptr; +int ok; +ok=Create_Math(&ptr); +// do things with ptr +//... +free(ptr); // dispose of iMath +</pre></div> + +<p>SWIG has a ready written typemap to deal with such a kind of function in <typemaps.i>. It provides the correct wrappering as well as setting the flag to inform Lua that the object in question should be garbage collected. Therefore the code is simply:</p> + +<div class="code"><pre>%include <typemaps.i> +%apply SWIGTYPE** OUTPUT{iMath **pptr }; // tell SWIG its an output + +struct iMath; // some structure +int Create_Math(iMath** pptr); // its creator (assume it mallocs) +</pre></div> + +<p>The usage is as follows:</p> + +<div class="targetlang"><pre>ok,ptr=Create_Math() -- ptr is a iMath* which is returned with the int (ok) +ptr=nil -- the iMath* will be GC'ed as normal +</pre></div> + +<H2><a name="Lua_nn28"></a>23.5 Writing typemaps</H2> + +<p>This section describes how you can modify SWIG's default wrapping behavior for various C/C++ datatypes using the <tt>%typemap</tt> directive. This is an advanced topic that assumes familiarity with the Lua C API as well as the material in the "<a href="Typemaps.html#Typemaps">Typemaps</a>" chapter.</p> + +<p>Before proceeding, it should be stressed that writing typemaps is rarely needed unless you want to change some aspect of the wrappering, or to achieve an effect which in not available with the default bindings.</p> + +<p>Before proceeding, you should read the previous section on using typemaps, as well as read the ready written typemaps found in luatypemaps.swg and typemaps.i. These are both well documented and fairly easy to read. You should not attempt to write your own typemaps until you have read and can understand both of these files (they may well also give you a idea to base your worn on).</p> + +<H3><a name="Lua_nn29"></a>23.5.1 Typemaps you can write</H3> + +<p>There are many different types of typemap that can be written, the full list can be found in the "<a href="Typemaps.html#Typemaps">Typemaps</a>" chapter. However the following are the most commonly used ones.</p> + +<ul> +<li><tt>in</tt> this is for input arguments to functions</li> +<li><tt>out</tt> this is for return types from functions</li> +<li><tt>argout</tt> this is for a function argument which is actually returning something</li> +<li><tt>typecheck</tt> this is used to determine which overloaded function should be called +(the syntax for the typecheck is different from the typemap, see typemaps for details).</li> +</ul> + +<H3><a name="Lua_nn30"></a>23.5.2 SWIG's Lua-C API</H3> + +<p>This section explains the SWIG specific Lua-C API. It does not cover the main Lua-C api, as this is well documented and not worth covering.</p> + +<p><tt>int SWIG_ConvertPtr(lua_State* L,int index,void** ptr,swig_type_info *type,int flags);</tt></p> + +<div class="indent"> +This is the standard function used for converting a Lua userdata to a void*. It takes the value at the given index in the Lua state and converts it to a userdata. It will then provide the neccesary type checks, confirming that the pointer is compatible with the type given in 'type'. Then finally setting '*ptr' to the pointer. +If flags is set to SWIG_POINTER_DISOWN, this is will clear any ownership flag set on the object.<br> +The returns a value which can be checked with the macro SWIG_IsOK() +</div> + +<p><tt>void SWIG_NewPointerObj(lua_State* L,void* ptr,swig_type_info *type,int own);</tt></p> + +<div class="indent"> +This is the opposite of SWIG_ConvertPtr, as it pushes a new userdata which wrappers the pointer 'ptr' of type 'type'. +The parameter 'own' specifies if the object is owned be Lua and if it is 1 then Lua will GC the object when the userdata is disposed of. +</div> + +<p><tt>void* SWIG_MustGetPtr(lua_State* L,int index,swig_type_info *type,int flags,int argnum,const char* func_name);</tt></p> + +<div class="indent"> +This function is a version of SWIG_ConvertPtr(), except that it will either work, or it will trigger a lua_error() with a text error message. This function is rarely used, and may be deprecated in the future. +</div> + +<p><tt>SWIG_fail</tt></p> + +<div class="indent"> +This macro, when called within the context of a SWIG wrappered function, will jump to the error handler code. This will call any cleanup code (freeing any temp variables) and then triggers a lua_error.<br> +A common use for this code is:<br><pre> +if (!SWIG_IsOK(SWIG_ConvertPtr( .....)){ + lua_pushstring(L,"something bad happened"); + SWIG_fail; +}</pre></div> + +<p><tt>SWIG_fail_arg(char* func_name,int argnum,char* type)</tt></p> + +<div class="indent"> +This macro, when called within the context of a SWIG wrappered function, will display the error message and jump to the error handler code. The error message is of the form "Error in <i>func_name</i> (arg <i>argnum</i>), expected '<i>type</i>' got '<i>whatever the type was</i>'"</pre></div> + +<p><tt>SWIG_fail_ptr(const char* fn_name,int argnum,swig_type_info* type);</tt></p> + +<div class="indent"> +Similar to SWIG_fail_arg, except that it will display the swig_type_info information instead.</pre></div> + +<H2><a name="Lua_nn31"></a>23.6 Customization of your Bindings</H2> + <p> +This section covers adding of some small extra bits to your module to add the last finishing touches. +</p> + + + +<H3><a name="Lua_nn32"></a>23.6.1 Writing your own custom wrappers</H3> + +<p> Sometimes, it may be neccesary to add your own special functions, which bypass the normal SWIG wrappering method, and just use the native Lua API calls. These 'native' functions allow direct adding of your own code into the module. This is performed with the <tt>%native</tt> directive as follows: </p> <div class="code"><pre>%native(my_func) int native_function(lua_State*L); // registers native_function() with SWIG @@ -1117,7 +1380,7 @@ The <tt>%native</tt> directive in the above example, tells SWIG that there is a function <tt>int native_function(lua_State*L);</tt> which is to be added into the module under the name '<tt>my_func</tt>'. SWIG will not add any wrappering for this function, beyond adding it into the function table. How you write your code is entirely up to you. </p> -<H3><a name="Lua_nn24"></a>23.3.17 Adding additional Lua code</H3> +<H3><a name="Lua_nn33"></a>23.6.2 Adding additional Lua code</H3> <p> @@ -1155,7 +1418,7 @@ See Examples/lua/arrays for an example of this code. </p> -<H2><a name="Lua_nn25"></a>23.4 Details on the Lua binding</H2> +<H2><a name="Lua_nn34"></a>23.7 Details on the Lua binding</H2> <p> @@ -1166,7 +1429,7 @@ </i> </p> -<H3><a name="Lua_nn26"></a>23.4.1 Binding global data into the module.</H3> +<H3><a name="Lua_nn35"></a>23.7.1 Binding global data into the module.</H3> <p> @@ -1226,7 +1489,7 @@ <p> That way when you call '<tt>a=example.Foo</tt>', the interpreter looks at the table 'example' sees that there is no field 'Foo' and calls __index. This will in turn check in '.get' table and find the existence of 'Foo' and then return the value of the C function call 'Foo_get()'. Similarly for the code '<tt>example.Foo=10</tt>', the interpreter will check the table, then call the __newindex which will then check the '.set' table and call the C function 'Foo_set(10)'. </p> -<H3><a name="Lua_nn27"></a>23.4.2 Userdata and Metatables</H3> +<H3><a name="Lua_nn36"></a>23.7.2 Userdata and Metatables</H3> <p> @@ -1306,7 +1569,7 @@ <p> Note: Operator overloads are basically done in the same way, by adding functions such as '__add' & '__call' to the classes metatable. The current implementation is a bit rough as it will add any member function beginning with '__' into the metatable too, assuming its an operator overload. </p> -<H3><a name="Lua_nn28"></a>23.4.3 Memory management</H3> +<H3><a name="Lua_nn37"></a>23.7.3 Memory management</H3> <p> Modified: trunk/Examples/lua/embed3/embed3.cpp =================================================================== --- trunk/Examples/lua/embed3/embed3.cpp 2009-01-12 11:42:27 UTC (rev 11060) +++ trunk/Examples/lua/embed3/embed3.cpp 2009-01-13 01:42:25 UTC (rev 11061) @@ -26,7 +26,12 @@ #include <lauxlib.h> #include <lualib.h> } - + +/* The SWIG external runtime is generated by using. +swig -lua -externalruntime swigluarun.h +It contains useful function used by SWIG in its wrappering +SWIG_TypeQuery() SWIG_NewPointerObj() +*/ #include "swigluarun.h" // the SWIG external runtime /* the SWIG wrappered library */ Modified: trunk/Lib/lua/luatypemaps.swg =================================================================== --- trunk/Lib/lua/luatypemaps.swg 2009-01-12 11:42:27 UTC (rev 11060) +++ trunk/Lib/lua/luatypemaps.swg 2009-01-13 01:42:25 UTC (rev 11061) @@ -20,11 +20,15 @@ to reflect the number of values returned (normally SWIG_arg++; will do) */ // numbers -%typemap(in,checkfn="lua_isnumber") int,short,long, - unsigned int,unsigned short,unsigned long, - signed char,unsigned char, - float,double +%typemap(in,checkfn="lua_isnumber") int, short, long, + signed char, float, double %{$1 = ($type)lua_tonumber(L, $input);%} + +// additional check for unsigned numbers, to not permit negative input +%typemap(in,checkfn="lua_isnumber") unsigned int, + unsigned short, unsigned long, unsigned char +%{SWIG_contract_assert((lua_tonumber(L,$input)>=0),"number must not be negative") +$1 = ($type)lua_tonumber(L, $input);%} %typemap(out) int,short,long, unsigned int,unsigned short,unsigned long, @@ -41,15 +45,20 @@ %typemap(in,checkfn="lua_isnumber") const int&($basetype temp) %{ temp=($basetype)lua_tonumber(L,$input); $1=&temp;%} -%typemap(out) const int& +%typemap(in,checkfn="lua_isnumber") const unsigned int&($basetype temp) +%{SWIG_contract_assert((lua_tonumber(L,$input)>=0),"number must not be negative") +temp=($basetype)lua_tonumber(L,$input); $1=&temp;%} + +%typemap(out) const int&, const unsigned int& %{ lua_pushnumber(L, (lua_Number) *$1); SWIG_arg++;%} // for the other numbers we can just use an apply statement to cover them -%apply const int & {const short&,const long&, - const unsigned int&,const unsigned short&,const unsigned long&, - const signed char&,const unsigned char&, +%apply const int & {const short&,const long&,const signed char&, const float&,const double&}; +%apply const unsigned int & {const unsigned short&,const unsigned long&, + const unsigned char&}; + /* enums have to be handled slightly differently VC++ .net will not allow a cast from lua_Number(double) to enum directly. */ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wsf...@us...> - 2009-01-13 07:09:32
|
Revision: 11062 http://swig.svn.sourceforge.net/swig/?rev=11062&view=rev Author: wsfulton Date: 2009-01-13 07:09:27 +0000 (Tue, 13 Jan 2009) Log Message: ----------- Fix compilation error when using directors on protected virtual overloaded methods reported by Sam Hendley. Modified Paths: -------------- trunk/CHANGES.current trunk/Examples/test-suite/common.mk trunk/Source/Modules/lang.cxx Added Paths: ----------- trunk/Examples/test-suite/director_protected_overloaded.i Modified: trunk/CHANGES.current =================================================================== --- trunk/CHANGES.current 2009-01-13 01:42:25 UTC (rev 11061) +++ trunk/CHANGES.current 2009-01-13 07:09:27 UTC (rev 11062) @@ -3,9 +3,13 @@ 2009-01-13: mgossage [Lua] Added contract support for requiring that unsigned numbers are >=0 - Rewrote much of Examples/Lua/embed3. - Added a lot of to the Lua documentation. + Rewrote much of Examples/Lua/embed3. + Added a lot to the Lua documentation. +2009-01-13: wsfulton + Fix compilation error when using directors on protected virtual overloaded + methods reported by Sam Hendley. + 2009-01-12: drjoe Fixed handling of integer arrays Modified: trunk/Examples/test-suite/common.mk =================================================================== --- trunk/Examples/test-suite/common.mk 2009-01-13 01:42:25 UTC (rev 11061) +++ trunk/Examples/test-suite/common.mk 2009-01-13 07:09:27 UTC (rev 11062) @@ -166,6 +166,7 @@ director_overload \ director_primitives \ director_protected \ + director_protected_overloaded \ director_redefined \ director_thread \ director_unroll \ Added: trunk/Examples/test-suite/director_protected_overloaded.i =================================================================== --- trunk/Examples/test-suite/director_protected_overloaded.i (rev 0) +++ trunk/Examples/test-suite/director_protected_overloaded.i 2009-01-13 07:09:27 UTC (rev 11062) @@ -0,0 +1,21 @@ +%module(directors="1",dirprot="1") director_protected_overloaded + +%director IDataObserver; +%director DerivedDataObserver; + +// protected overloaded methods +%inline %{ + class IDataObserver + { + public: + virtual ~IDataObserver(){} + + protected: + virtual void notoverloaded() = 0; + virtual void isoverloaded() = 0; + virtual void isoverloaded(int i) = 0; + virtual void isoverloaded(int i, double d) = 0; + }; + class DerivedDataObserver : public IDataObserver { + }; +%} Modified: trunk/Source/Modules/lang.cxx =================================================================== --- trunk/Source/Modules/lang.cxx 2009-01-13 01:42:25 UTC (rev 11061) +++ trunk/Source/Modules/lang.cxx 2009-01-13 07:09:27 UTC (rev 11062) @@ -830,9 +830,8 @@ if (!(directorsEnabled() && ((is_member_director(CurrentClass, n) && need_nonpublic_member(n)) || is_non_virtual_protected_access(n)))) { return SWIG_NOWRAP; } -#if 0 -// I don't see why this is needed - WSF - /* prevent wrapping the method twice due to overload */ + // Prevent wrapping protected overloaded director methods more than once - + // This bit of code is only needed due to the cDeclaration call in classHandler() String *wrapname = NewStringf("nonpublic_%s%s", symname, Getattr(n, "sym:overname")); if (Getattr(CurrentClass, wrapname)) { Delete(wrapname); @@ -840,7 +839,6 @@ } SetFlag(CurrentClass, wrapname); Delete(wrapname); -#endif } } @@ -2476,6 +2474,13 @@ Node *m = Copy(method); Setattr(m, "director", "1"); Setattr(m, "parentNode", n); + /* + * There is a bug that needs fixing still... + * This area of code is creating methods which have not been overidden in a derived class (director methods that are protected in the base) + * If the method is overloaded, then Swig_overload_dispatch() incorrectly generates a call to the base wrapper, _wrap_xxx method + * See director_protected_overloaded.i - Possibly sym:overname needs correcting here. + Printf(stdout, "new method: %s::%s(%s)\n", Getattr(parentNode(m), "name"), Getattr(m, "name"), ParmList_str_defaultargs(Getattr(m, "parms"))); + */ cDeclaration(m); Delete(m); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wsf...@us...> - 2009-01-13 07:11:05
|
Revision: 11063 http://swig.svn.sourceforge.net/swig/?rev=11063&view=rev Author: wsfulton Date: 2009-01-13 07:11:00 +0000 (Tue, 13 Jan 2009) Log Message: ----------- 1.3.37 final touches Modified Paths: -------------- trunk/ANNOUNCE trunk/CHANGES.current trunk/Doc/Manual/Sections.html trunk/README Modified: trunk/ANNOUNCE =================================================================== --- trunk/ANNOUNCE 2009-01-13 07:09:27 UTC (rev 11062) +++ trunk/ANNOUNCE 2009-01-13 07:11:00 UTC (rev 11063) @@ -1,4 +1,4 @@ -*** ANNOUNCE: SWIG 1.3.37 (30 December 2008) *** +*** ANNOUNCE: SWIG 1.3.37 (13 January 2009) *** http://www.swig.org Modified: trunk/CHANGES.current =================================================================== --- trunk/CHANGES.current 2009-01-13 07:09:27 UTC (rev 11062) +++ trunk/CHANGES.current 2009-01-13 07:11:00 UTC (rev 11063) @@ -1,5 +1,5 @@ -Version 1.3.37 (30 December 2008) -================================= +Version 1.3.37 (13 January 2009) +================================ 2009-01-13: mgossage [Lua] Added contract support for requiring that unsigned numbers are >=0 @@ -11,10 +11,10 @@ methods reported by Sam Hendley. 2009-01-12: drjoe - Fixed handling of integer arrays + [R] Fixed handling of integer arrays 2009-01-10: drjoe - Fix integer handling in r to deal correctly with signed + [R] Fix integer handling in r to deal correctly with signed and unsigned issues 2009-01-10: wsfulton Modified: trunk/Doc/Manual/Sections.html =================================================================== --- trunk/Doc/Manual/Sections.html 2009-01-13 07:09:27 UTC (rev 11062) +++ trunk/Doc/Manual/Sections.html 2009-01-13 07:11:00 UTC (rev 11063) @@ -6,7 +6,7 @@ <body bgcolor="#ffffff"> <H1><a name="Sections"></a>SWIG-1.3 Development Documentation</H1> -Last update : SWIG-1.3.37 (30 December 2008) +Last update : SWIG-1.3.37 (13 January 2009) <H2>Sections</H2> Modified: trunk/README =================================================================== --- trunk/README 2009-01-13 07:09:27 UTC (rev 11062) +++ trunk/README 2009-01-13 07:11:00 UTC (rev 11063) @@ -1,6 +1,6 @@ SWIG (Simplified Wrapper and Interface Generator) -Version: 1.3.37 (30 December 2008) +Version: 1.3.37 (13 January 2009) Tagline: SWIG is a compiler that integrates C and C++ with languages including Perl, Python, Tcl, Ruby, PHP, Java, Ocaml, Lua, @@ -100,7 +100,7 @@ - Improved C# array support - Numerous Allegro CL improvements - Bug fixes/enhancements for Python, PHP, Java, C#, Chicken, Allegro CL, - CFFI, Ruby, Tcl, Perl. + CFFI, Ruby, Tcl, Perl, R, Lua. - Other minor generic bug fixes and enhancements SWIG-1.3.36 summary: This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wsf...@us...> - 2009-01-13 18:21:24
|
Revision: 11069 http://swig.svn.sourceforge.net/swig/?rev=11069&view=rev Author: wsfulton Date: 2009-01-13 18:21:18 +0000 (Tue, 13 Jan 2009) Log Message: ----------- bump version to 1.3.38 Modified Paths: -------------- trunk/ANNOUNCE trunk/CHANGES trunk/CHANGES.current trunk/Doc/Manual/Sections.html trunk/README trunk/TODO trunk/configure.in Modified: trunk/ANNOUNCE =================================================================== --- trunk/ANNOUNCE 2009-01-13 18:12:36 UTC (rev 11068) +++ trunk/ANNOUNCE 2009-01-13 18:21:18 UTC (rev 11069) @@ -1,10 +1,10 @@ -*** ANNOUNCE: SWIG 1.3.37 (13 January 2009) *** +*** ANNOUNCE: SWIG 1.3.38 (in progress) *** http://www.swig.org -We're pleased to announce SWIG-1.3.37, the latest installment in the -SWIG development effort. SWIG-1.3.37 includes a number of bug fixes +We're pleased to announce SWIG-1.3.38, the latest installment in the +SWIG development effort. SWIG-1.3.38 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.37.tar.gz + http://prdownloads.sourceforge.net/swig/swig-1.3.38.tar.gz A Windows version is also available at - http://prdownloads.sourceforge.net/swig/swigwin-1.3.37.zip + http://prdownloads.sourceforge.net/swig/swigwin-1.3.38.zip Release numbers --------------- Modified: trunk/CHANGES =================================================================== --- trunk/CHANGES 2009-01-13 18:12:36 UTC (rev 11068) +++ trunk/CHANGES 2009-01-13 18:21:18 UTC (rev 11069) @@ -2,6 +2,348 @@ See CHANGES.current for current version. +Version 1.3.37 (13 January 2009) +================================ + +2009-01-13: mgossage + [Lua] Added contract support for requiring that unsigned numbers are >=0 + Rewrote much of Examples/Lua/embed3. + Added a lot to the Lua documentation. + +2009-01-13: wsfulton + Fix compilation error when using directors on protected virtual overloaded + methods reported by Sam Hendley. + +2009-01-12: drjoe + [R] Fixed handling of integer arrays + +2009-01-10: drjoe + [R] Fix integer handling in r to deal correctly with signed + and unsigned issues + +2009-01-10: wsfulton + Patch #1992756 from Colin McDonald - %contract not working for classes + in namespace + +2009-01-05: olly + Mark SWIGPERL5, SWIGPHP5, and SWIGTCL8 as deprecated in the source + code and remove documentation of them. + +2008-12-30: wsfulton + Bug #2430756. All the languages now define a macro in the generated C/C++ + wrapper file indicating which language is being wrapped. The macro name is the + same as those defined when SWIG is run, eg SWIGJAVA, SWIGOCTAVE, SWIGCSHARP etc + and are listed in the "Conditional Compilation" section in the documentation. + +2008-12-23: wsfulton + [Java] Fix #2153773 - %nojavaexception was clearing the exception feature + instead of disabling it. Clearing checked Java exceptions also didn't work. + The new %clearjavaexception can be used for clearing the exception feature. + +2008-12-22: wsfulton + Fix #2432801 - Make SwigValueWrapper exception safe for when copy constructors + throw exceptions. + +2008-12-21: wsfulton + Apply patch #2440046 which fixes possible seg faults for member and global + variable char arrays when the strings are larger than the string array size. + +2008-12-20: wsfulton + The ccache compiler cache has been adapted to work with SWIG and + named ccache-swig. It now works with C/C++ compilers as well as SWIG + and can result in impressive speedups when used to recompile unchanged + code with either a C/C++ compiler or SWIG. Documentation is in CCache.html + or the installed ccache-swig man page. + +2008-12-12: wsfulton + Apply patch from Kalyanov Dmitry which fixes parsing of nested structs + containing comments. + +2008-12-12: wsfulton + Fix error message in some nested struct and %inline parsing error situations + such as unterminated strings and comments. + +2008-12-07: olly + [PHP] Fix warnings when compiling generated wrapper with GCC 4.3. + +2008-12-06: wsfulton + [PHP] Deprecate %pragma(php4). Please use %pragma(php) instead. + The following two warnings have been renamed: + WARN_PHP4_MULTIPLE_INHERITANCE -> WARN_PHP_MULTIPLE_INHERITANCE + WARN_PHP4_UNKNOWN_PRAGMA -> WARN_PHP_UNKNOWN_PRAGMA + + *** POTENTIAL INCOMPATIBILITY *** + +2008-12-04: bhy + [Python] Applied patch SF#2158938: all the SWIG symbol names started with Py + are changed, since they are inappropriate and discouraged in Python + documentation (from http://www.python.org/doc/2.5.2/api/includes.html): + + "All user visible names defined by Python.h (except those defined by + the included standard headers) have one of the prefixes "Py" or "_Py". + Names beginning with "_Py" are for internal use by the Python implementation + and should not be used by extension writers. Structure member names do + not have a reserved prefix. + + Important: user code should never define names that begin with "Py" or "_Py". + This confuses the reader, and jeopardizes the portability of the user + code to future Python versions, which may define additional names beginning + with one of these prefixes." + + Here is a brief list of what changed: + + PySwig* -> SwigPy* + PyObject_ptr -> SwigPtr_PyObject + PyObject_var -> SwigVar_PyObject + PySequence_Base, PySequence_Cont, PySequence_Ref -> + SwigPySequence_Base, SwigPySequence_Cont, SwigPySequence_Ref + PyMap* -> SwigPyMap* + + We provided a pyname_compat.i for backward compatibility. Users whose code having + these symbols and do not want to change it could simply include this file + at front of your code. A better solution is to run the converting tool on + your code, which has been put in SWIG's SVN trunk (Tools/pyname_patch.py) and + you can download it here: + https://swig.svn.sourceforge.net/svnroot/swig/trunk/Tools/pyname_patch.py + + *** POTENTIAL INCOMPATIBILITY *** + +2008-12-02: wsfulton + [Python] Apply patch #2143727 from Serge Monkewitz to fix importing base classes + when the package option is specified in %module and that module is %import'ed. + +2008-11-28: wsfulton + [UTL] Fix #2080497. Some incorrect acceptance of types in the STL, eg a double * element + passed into a vector<int *> constructor would be accepted, but the ensuing behaviour + was undefined. Now the type conversion correctly raises an exception. + +2008-11-24: wsfulton + Add -outcurrentdir option. This sets the default output directory to the current + directory instead of the path specified by the input file. This option enables + behaviour similar to c/c++ compilers. Note that this controls the output directory, + but only in the absence of the -o and/or -outdir options. + +2008-11-23: wsfulton + [ruby] Apply patch #2263850 to fix ruby/file.i ... rubyio.h filename change in + ruby 1.9. + +2008-11-23: wsfulton + Apply patch #2319790 from Johan Hake to fix shared_ptr usage in std::tr1 namespace. + +2008-11-21: wsfulton + The use of the include path to find the input file is now deprecated. + This makes the behaviour of SWIG the same as C/C++ compilers in preparation + for use with ccache. + +2008-11-16: wsfulton + Fix -nopreprocess option to: + - correctly report file names in warning and error messages. + - use the original input filename that created the preprocessed output when + determining the C++ wrapper file name (in the absence of -o). Previously + the name of the input file containing the preprocessed output was used. + +2008-11-11: wsfulton + [Java] Add patch #2152691 from MATSUURA Takanori which fixes compiles using the + Intel compiler + +2008-11-01: wsfulton + Add patch #2128249 from Anatoly Techtonik which corrects the C/C++ proxy + class being reported for Python docstrings when %rename is used. + +2008-11-01: wsfulton + Add the strip encoder patch from Anatoly Techtonik #2130016. This enables an + easy way to rename symbols by stripping a commonly used prefix in all the + function/struct names. It works in the same way as the other encoders, such as + title, lower, command etc outlined in CHANGES file dated 12/30/2005. Example + below will rename wxAnotherWidget to AnotherWidget and wxDoSomething to + DoSomething: + + %rename("%(strip:[wx])s") ""; + + struct wxAnotherWidget { + void wxDoSomething(); + }; + +2008-09-26: mutandiz + [allegrocl] + Lots of test-suite work. + - Fix ordering of wrapper output and %{ %} header output. + - Fix declarations of local vars in C wrappers. + - Fix declaration of defined constants in C wrappers. + - Fix declaration of EnumValues in C wrappers. + - add some const typemaps to allegrocl.swg + - add rename for operator bool() overloads. + +2008-09-25: olly + [PHP5] Fill in typemaps for SWIGTYPE and void * (SF#2095186). + +2008-09-22: mutandiz (Mikel Bancroft) + [allegrocl] + - Support wrapping of types whose definitions are not seen by + SWIG. They are treated as forward-referenced classes and if a + definition is not seen are treated as (* :void). + - Don't wrap the contents of unnamed namespaces. + - More code cleanup. Removed some extraneous warnings. + - start work on having the allegrocl mod pass the cpp test-suite. + +2008-09-19: olly + [PHP5] Add typemaps for long long and unsigned long long. + +2008-09-18: wsfulton + [C#] Added C# array typemaps provided by Antti Karanta. + The arrays provide a way to use MarshalAs(UnmanagedType.LPArray) + and pinning the array using 'fixed'. See arrays_csharp.i library file + for details. + +2008-09-18: wsfulton + Document the optional module attribute in the %import directive, + see Modules.html. Add a warning for Python wrappers when the + module name for an imported base class is missing, requiring the + module attribute to be added to %import, eg + + %import(module="FooModule") foo.h + +2008-09-18: olly + [PHP5] Change the default input typemap for char * to turn PHP + Null into C NULL (previously it was converted to an empty string). + The new behaviour is consistent with how the corresponding output + typemap works (SF#2025719). + + If you want to keep the old behaviour, add the following typemap + to your interface file (PHP's convert_to_string_ex() function does + the converting from PHP Null to an empty string): + + %typemap(in) char * { + convert_to_string_ex($input); + $1 = Z_STRVAL_PP($input); + } + +2008-09-18: olly + [PHP5] Fix extra code added to proxy class constructors in the case + where the only constructor takes no arguments. + +2008-09-18: olly + [PHP5] Fix wrapping of a renamed enumerated value of an enum class + member (SF#2095273). + +2008-09-17: mutandiz (Mikel Bancroft) + [allegrocl] + - Fix how forward reference typedefs are handled, so as not to conflict + with other legit typedefs. + - Don't (for now) perform an ffitype typemap lookup when trying to + when calling compose_foreign_type(). This is actually a useful thing + to do in certain cases, the test cases for which I can't currently + locate :/. It's breaking some wrapping behavior that is more commonly + seen, however. I'll readd in a more appropriate way when I can + recreate the needed test case, or a user complains (which means + they probably have a test case). + - document the -isolate command-line arg in the 'swig -help' output. + It was in the html docs, but not there. + - small amount of code cleanup, removed some unused code. + - some minor aesthetic changes. + +2008-09-12: bhy + [Python] Python 3.0 support branch merged into SWIG trunk. Thanks to + Google Summer of Code 2008 for supporting this project! By default + SWIG will generate interface files compatible with both Python 2.x + and 3.0. And there's also some Python 3 new features that can be + enabled by passing a "-py3" command line option to SWIG. These + features are: + + - Function annotation support + Also, the parameter list of proxy function will be generated, + even without the "-py3" option. However, the parameter list + will fallback to *args if the function (or method) is overloaded. + - Buffer interface support + - Abstract base class support + + For details of Python 3 support and these features, please see the + "Python 3 Support" section in the "SWIG and Python" chapter of the SWIG + documentation. + + The "-apply" command line option and support of generating codes + using apply() is removed. Since this is only required by very old + Python. + + This merge also patched SWIG's parser to solve a bug. By this patch, + SWIG features able to be correctly applied on C++ conversion operator, + such like this: + + %feature("shadow") *::operator bool %{ ... %} + +2008-09-02: richardb + [Python] Commit patch #2089149: Director exception handling mangles + returned exception. Exceptions raised by Python code in directors + are now passed through to the caller without change. Also, remove + the ": " prefix which used to be added to other director exceptions + (eg, those due to incorrect return types). + +2008-09-02: wsfulton + [Python] Commit patch #1988296 GCItem multiple module linking issue when using + directors. + +2008-09-02: wsfulton + [C#] Support for 'using' and 'fixed' blocks in the 'csin' typemap is now + possible through the use of the pre attribute and the new terminator attribute, eg + + %typemap(csin, + pre=" using (CDate temp$csinput = new CDate($csinput)) {", + terminator=" } // terminate temp$csinput using block", + ) const CDate & + "$csclassname.getCPtr(temp$csinput)" + + See CSharp.html for more info. + +2008-09-01: wsfulton + [CFFI] Commit patch #2079381 submitted by Boris Smilga - constant exprs put into + no-eval context in DEFCENUM + +2008-08-02: wuzzeb + [Chicken,Allegro] Commit Patch 2019314 + Fixes a build error in chicken, and several build errors and other errors + in Allegro CL + +2008-07-19: wsfulton + Fix building of Tcl examples/test-suite on Mac OSX reported by Gideon Simpson. + +2008-07-17: wsfulton + Fix SF #2019156 Configuring with --without-octave or --without-alllang + did not disable octave. + +2008-07-14: wsfulton + [Java, C#] Fix director typemaps for pointers so that NULL pointers are correctly + marshalled to C#/Java null in director methods. + +2008-07-04: olly + [PHP] For std_vector.i and std_map.i, rename empty() to is_empty() + since "empty" is a PHP reserved word. Based on patch from Mark Klein + in SF#1943417. + +2008-07-04: olly + [PHP] The deprecated command line option "-make" has been removed. + Searches on Google codesearch suggest that nobody is using it now + anyway. + +2008-07-04: olly + [PHP] The SWIG cdata.i library module is now supported. + +2008-07-03: olly + [PHP] The deprecated command line option "-phpfull" has been + removed. We recommend building your extension as a dynamically + loadable module. + +2008-07-02: olly + [PHP4] Support for PHP4 has been removed. The PHP developers are + no longer making new PHP4 releases, and won't even be providing + patches for critical security issues after 2008-08-08. + +2008-07-02: olly + [Python] Import the C extension differently for Python 2.6 and + later so that an implicit relative import doesn't produce a + deprecation warning for 2.6 and a failure for 2.7 and later. + Patch from Richard Boulton in SF#2008229, plus follow-up patches + from Richard and Haoyu Bai. + Version 1.3.36 (24 June 2008) ============================= Modified: trunk/CHANGES.current =================================================================== --- trunk/CHANGES.current 2009-01-13 18:12:36 UTC (rev 11068) +++ trunk/CHANGES.current 2009-01-13 18:21:18 UTC (rev 11069) @@ -1,342 +1,3 @@ -Version 1.3.37 (13 January 2009) +Version 1.3.38 (in progress) ================================ -2009-01-13: mgossage - [Lua] Added contract support for requiring that unsigned numbers are >=0 - Rewrote much of Examples/Lua/embed3. - Added a lot to the Lua documentation. - -2009-01-13: wsfulton - Fix compilation error when using directors on protected virtual overloaded - methods reported by Sam Hendley. - -2009-01-12: drjoe - [R] Fixed handling of integer arrays - -2009-01-10: drjoe - [R] Fix integer handling in r to deal correctly with signed - and unsigned issues - -2009-01-10: wsfulton - Patch #1992756 from Colin McDonald - %contract not working for classes - in namespace - -2009-01-05: olly - Mark SWIGPERL5, SWIGPHP5, and SWIGTCL8 as deprecated in the source - code and remove documentation of them. - -2008-12-30: wsfulton - Bug #2430756. All the languages now define a macro in the generated C/C++ - wrapper file indicating which language is being wrapped. The macro name is the - same as those defined when SWIG is run, eg SWIGJAVA, SWIGOCTAVE, SWIGCSHARP etc - and are listed in the "Conditional Compilation" section in the documentation. - -2008-12-23: wsfulton - [Java] Fix #2153773 - %nojavaexception was clearing the exception feature - instead of disabling it. Clearing checked Java exceptions also didn't work. - The new %clearjavaexception can be used for clearing the exception feature. - -2008-12-22: wsfulton - Fix #2432801 - Make SwigValueWrapper exception safe for when copy constructors - throw exceptions. - -2008-12-21: wsfulton - Apply patch #2440046 which fixes possible seg faults for member and global - variable char arrays when the strings are larger than the string array size. - -2008-12-20: wsfulton - The ccache compiler cache has been adapted to work with SWIG and - named ccache-swig. It now works with C/C++ compilers as well as SWIG - and can result in impressive speedups when used to recompile unchanged - code with either a C/C++ compiler or SWIG. Documentation is in CCache.html - or the installed ccache-swig man page. - -2008-12-12: wsfulton - Apply patch from Kalyanov Dmitry which fixes parsing of nested structs - containing comments. - -2008-12-12: wsfulton - Fix error message in some nested struct and %inline parsing error situations - such as unterminated strings and comments. - -2008-12-07: olly - [PHP] Fix warnings when compiling generated wrapper with GCC 4.3. - -2008-12-06: wsfulton - [PHP] Deprecate %pragma(php4). Please use %pragma(php) instead. - The following two warnings have been renamed: - WARN_PHP4_MULTIPLE_INHERITANCE -> WARN_PHP_MULTIPLE_INHERITANCE - WARN_PHP4_UNKNOWN_PRAGMA -> WARN_PHP_UNKNOWN_PRAGMA - - *** POTENTIAL INCOMPATIBILITY *** - -2008-12-04: bhy - [Python] Applied patch SF#2158938: all the SWIG symbol names started with Py - are changed, since they are inappropriate and discouraged in Python - documentation (from http://www.python.org/doc/2.5.2/api/includes.html): - - "All user visible names defined by Python.h (except those defined by - the included standard headers) have one of the prefixes "Py" or "_Py". - Names beginning with "_Py" are for internal use by the Python implementation - and should not be used by extension writers. Structure member names do - not have a reserved prefix. - - Important: user code should never define names that begin with "Py" or "_Py". - This confuses the reader, and jeopardizes the portability of the user - code to future Python versions, which may define additional names beginning - with one of these prefixes." - - Here is a brief list of what changed: - - PySwig* -> SwigPy* - PyObject_ptr -> SwigPtr_PyObject - PyObject_var -> SwigVar_PyObject - PySequence_Base, PySequence_Cont, PySequence_Ref -> - SwigPySequence_Base, SwigPySequence_Cont, SwigPySequence_Ref - PyMap* -> SwigPyMap* - - We provided a pyname_compat.i for backward compatibility. Users whose code having - these symbols and do not want to change it could simply include this file - at front of your code. A better solution is to run the converting tool on - your code, which has been put in SWIG's SVN trunk (Tools/pyname_patch.py) and - you can download it here: - https://swig.svn.sourceforge.net/svnroot/swig/trunk/Tools/pyname_patch.py - - *** POTENTIAL INCOMPATIBILITY *** - -2008-12-02: wsfulton - [Python] Apply patch #2143727 from Serge Monkewitz to fix importing base classes - when the package option is specified in %module and that module is %import'ed. - -2008-11-28: wsfulton - [UTL] Fix #2080497. Some incorrect acceptance of types in the STL, eg a double * element - passed into a vector<int *> constructor would be accepted, but the ensuing behaviour - was undefined. Now the type conversion correctly raises an exception. - -2008-11-24: wsfulton - Add -outcurrentdir option. This sets the default output directory to the current - directory instead of the path specified by the input file. This option enables - behaviour similar to c/c++ compilers. Note that this controls the output directory, - but only in the absence of the -o and/or -outdir options. - -2008-11-23: wsfulton - [ruby] Apply patch #2263850 to fix ruby/file.i ... rubyio.h filename change in - ruby 1.9. - -2008-11-23: wsfulton - Apply patch #2319790 from Johan Hake to fix shared_ptr usage in std::tr1 namespace. - -2008-11-21: wsfulton - The use of the include path to find the input file is now deprecated. - This makes the behaviour of SWIG the same as C/C++ compilers in preparation - for use with ccache. - -2008-11-16: wsfulton - Fix -nopreprocess option to: - - correctly report file names in warning and error messages. - - use the original input filename that created the preprocessed output when - determining the C++ wrapper file name (in the absence of -o). Previously - the name of the input file containing the preprocessed output was used. - -2008-11-11: wsfulton - [Java] Add patch #2152691 from MATSUURA Takanori which fixes compiles using the - Intel compiler - -2008-11-01: wsfulton - Add patch #2128249 from Anatoly Techtonik which corrects the C/C++ proxy - class being reported for Python docstrings when %rename is used. - -2008-11-01: wsfulton - Add the strip encoder patch from Anatoly Techtonik #2130016. This enables an - easy way to rename symbols by stripping a commonly used prefix in all the - function/struct names. It works in the same way as the other encoders, such as - title, lower, command etc outlined in CHANGES file dated 12/30/2005. Example - below will rename wxAnotherWidget to AnotherWidget and wxDoSomething to - DoSomething: - - %rename("%(strip:[wx])s") ""; - - struct wxAnotherWidget { - void wxDoSomething(); - }; - -2008-09-26: mutandiz - [allegrocl] - Lots of test-suite work. - - Fix ordering of wrapper output and %{ %} header output. - - Fix declarations of local vars in C wrappers. - - Fix declaration of defined constants in C wrappers. - - Fix declaration of EnumValues in C wrappers. - - add some const typemaps to allegrocl.swg - - add rename for operator bool() overloads. - -2008-09-25: olly - [PHP5] Fill in typemaps for SWIGTYPE and void * (SF#2095186). - -2008-09-22: mutandiz (Mikel Bancroft) - [allegrocl] - - Support wrapping of types whose definitions are not seen by - SWIG. They are treated as forward-referenced classes and if a - definition is not seen are treated as (* :void). - - Don't wrap the contents of unnamed namespaces. - - More code cleanup. Removed some extraneous warnings. - - start work on having the allegrocl mod pass the cpp test-suite. - -2008-09-19: olly - [PHP5] Add typemaps for long long and unsigned long long. - -2008-09-18: wsfulton - [C#] Added C# array typemaps provided by Antti Karanta. - The arrays provide a way to use MarshalAs(UnmanagedType.LPArray) - and pinning the array using 'fixed'. See arrays_csharp.i library file - for details. - -2008-09-18: wsfulton - Document the optional module attribute in the %import directive, - see Modules.html. Add a warning for Python wrappers when the - module name for an imported base class is missing, requiring the - module attribute to be added to %import, eg - - %import(module="FooModule") foo.h - -2008-09-18: olly - [PHP5] Change the default input typemap for char * to turn PHP - Null into C NULL (previously it was converted to an empty string). - The new behaviour is consistent with how the corresponding output - typemap works (SF#2025719). - - If you want to keep the old behaviour, add the following typemap - to your interface file (PHP's convert_to_string_ex() function does - the converting from PHP Null to an empty string): - - %typemap(in) char * { - convert_to_string_ex($input); - $1 = Z_STRVAL_PP($input); - } - -2008-09-18: olly - [PHP5] Fix extra code added to proxy class constructors in the case - where the only constructor takes no arguments. - -2008-09-18: olly - [PHP5] Fix wrapping of a renamed enumerated value of an enum class - member (SF#2095273). - -2008-09-17: mutandiz (Mikel Bancroft) - [allegrocl] - - Fix how forward reference typedefs are handled, so as not to conflict - with other legit typedefs. - - Don't (for now) perform an ffitype typemap lookup when trying to - when calling compose_foreign_type(). This is actually a useful thing - to do in certain cases, the test cases for which I can't currently - locate :/. It's breaking some wrapping behavior that is more commonly - seen, however. I'll readd in a more appropriate way when I can - recreate the needed test case, or a user complains (which means - they probably have a test case). - - document the -isolate command-line arg in the 'swig -help' output. - It was in the html docs, but not there. - - small amount of code cleanup, removed some unused code. - - some minor aesthetic changes. - -2008-09-12: bhy - [Python] Python 3.0 support branch merged into SWIG trunk. Thanks to - Google Summer of Code 2008 for supporting this project! By default - SWIG will generate interface files compatible with both Python 2.x - and 3.0. And there's also some Python 3 new features that can be - enabled by passing a "-py3" command line option to SWIG. These - features are: - - - Function annotation support - Also, the parameter list of proxy function will be generated, - even without the "-py3" option. However, the parameter list - will fallback to *args if the function (or method) is overloaded. - - Buffer interface support - - Abstract base class support - - For details of Python 3 support and these features, please see the - "Python 3 Support" section in the "SWIG and Python" chapter of the SWIG - documentation. - - The "-apply" command line option and support of generating codes - using apply() is removed. Since this is only required by very old - Python. - - This merge also patched SWIG's parser to solve a bug. By this patch, - SWIG features able to be correctly applied on C++ conversion operator, - such like this: - - %feature("shadow") *::operator bool %{ ... %} - -2008-09-02: richardb - [Python] Commit patch #2089149: Director exception handling mangles - returned exception. Exceptions raised by Python code in directors - are now passed through to the caller without change. Also, remove - the ": " prefix which used to be added to other director exceptions - (eg, those due to incorrect return types). - -2008-09-02: wsfulton - [Python] Commit patch #1988296 GCItem multiple module linking issue when using - directors. - -2008-09-02: wsfulton - [C#] Support for 'using' and 'fixed' blocks in the 'csin' typemap is now - possible through the use of the pre attribute and the new terminator attribute, eg - - %typemap(csin, - pre=" using (CDate temp$csinput = new CDate($csinput)) {", - terminator=" } // terminate temp$csinput using block", - ) const CDate & - "$csclassname.getCPtr(temp$csinput)" - - See CSharp.html for more info. - -2008-09-01: wsfulton - [CFFI] Commit patch #2079381 submitted by Boris Smilga - constant exprs put into - no-eval context in DEFCENUM - -2008-08-02: wuzzeb - [Chicken,Allegro] Commit Patch 2019314 - Fixes a build error in chicken, and several build errors and other errors - in Allegro CL - -2008-07-19: wsfulton - Fix building of Tcl examples/test-suite on Mac OSX reported by Gideon Simpson. - -2008-07-17: wsfulton - Fix SF #2019156 Configuring with --without-octave or --without-alllang - did not disable octave. - -2008-07-14: wsfulton - [Java, C#] Fix director typemaps for pointers so that NULL pointers are correctly - marshalled to C#/Java null in director methods. - -2008-07-04: olly - [PHP] For std_vector.i and std_map.i, rename empty() to is_empty() - since "empty" is a PHP reserved word. Based on patch from Mark Klein - in SF#1943417. - -2008-07-04: olly - [PHP] The deprecated command line option "-make" has been removed. - Searches on Google codesearch suggest that nobody is using it now - anyway. - -2008-07-04: olly - [PHP] The SWIG cdata.i library module is now supported. - -2008-07-03: olly - [PHP] The deprecated command line option "-phpfull" has been - removed. We recommend building your extension as a dynamically - loadable module. - -2008-07-02: olly - [PHP4] Support for PHP4 has been removed. The PHP developers are - no longer making new PHP4 releases, and won't even be providing - patches for critical security issues after 2008-08-08. - -2008-07-02: olly - [Python] Import the C extension differently for Python 2.6 and - later so that an implicit relative import doesn't produce a - deprecation warning for 2.6 and a failure for 2.7 and later. - Patch from Richard Boulton in SF#2008229, plus follow-up patches - from Richard and Haoyu Bai. - Modified: trunk/Doc/Manual/Sections.html =================================================================== --- trunk/Doc/Manual/Sections.html 2009-01-13 18:12:36 UTC (rev 11068) +++ trunk/Doc/Manual/Sections.html 2009-01-13 18:21:18 UTC (rev 11069) @@ -6,7 +6,7 @@ <body bgcolor="#ffffff"> <H1><a name="Sections"></a>SWIG-1.3 Development Documentation</H1> -Last update : SWIG-1.3.37 (13 January 2009) +Last update : SWIG-1.3.38 (in progress) <H2>Sections</H2> Modified: trunk/README =================================================================== --- trunk/README 2009-01-13 18:12:36 UTC (rev 11068) +++ trunk/README 2009-01-13 18:21:18 UTC (rev 11069) @@ -1,6 +1,6 @@ SWIG (Simplified Wrapper and Interface Generator) -Version: 1.3.37 (13 January 2009) +Version: 1.3.38 (in progress) Tagline: SWIG is a compiler that integrates C and C++ with languages including Perl, Python, Tcl, Ruby, PHP, Java, Ocaml, Lua, Modified: trunk/TODO =================================================================== --- trunk/TODO 2009-01-13 18:12:36 UTC (rev 11068) +++ trunk/TODO 2009-01-13 18:21:18 UTC (rev 11069) @@ -1,6 +1,6 @@ SWIG TO-DO -Release: SWIG-1.3.37 +Release: SWIG-1.3.38 ----------------------------------------------------------------------------- Modified: trunk/configure.in =================================================================== --- trunk/configure.in 2009-01-13 18:12:36 UTC (rev 11068) +++ trunk/configure.in 2009-01-13 18:21:18 UTC (rev 11069) @@ -2,7 +2,7 @@ dnl The macros which aren't shipped with the autotools are stored in the dnl Tools/config directory in .m4 files. -AC_INIT([swig],[1.3.37],[http://www.swig.org]) +AC_INIT([swig],[1.3.38],[http://www.swig.org]) AC_PREREQ(2.58) AC_CONFIG_SRCDIR([Source/Swig/swig.h]) AC_CONFIG_AUX_DIR([Tools/config]) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wsf...@us...> - 2009-01-15 07:29:32
|
Revision: 11070 http://swig.svn.sourceforge.net/swig/?rev=11070&view=rev Author: wsfulton Date: 2009-01-15 07:29:28 +0000 (Thu, 15 Jan 2009) Log Message: ----------- Fix segfault when using -perl -v Modified Paths: -------------- trunk/CHANGES.current trunk/Source/Modules/perl5.cxx Modified: trunk/CHANGES.current =================================================================== --- trunk/CHANGES.current 2009-01-13 18:21:18 UTC (rev 11069) +++ trunk/CHANGES.current 2009-01-15 07:29:28 UTC (rev 11070) @@ -1,3 +1,6 @@ Version 1.3.38 (in progress) ================================ +2008-01-15: wsfulton + [Perl] Fix seg fault when running with -v option, reported by John Ky. + Modified: trunk/Source/Modules/perl5.cxx =================================================================== --- trunk/Source/Modules/perl5.cxx 2009-01-13 18:21:18 UTC (rev 11069) +++ trunk/Source/Modules/perl5.cxx 2009-01-15 07:29:28 UTC (rev 11070) @@ -1139,8 +1139,9 @@ /* Do some work on the class name */ if (verbose > 0) { + String *modulename = Getattr(clsmodule, "name"); fprintf(stdout, "setclassname: Found sym:name: %s\n", Char(symname)); - fprintf(stdout, "setclassname: Found module: %s\n", Char(clsmodule)); + fprintf(stdout, "setclassname: Found module: %s\n", Char(modulename)); fprintf(stdout, "setclassname: No package found\n"); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wsf...@us...> - 2009-01-21 18:55:41
|
Revision: 11075 http://swig.svn.sourceforge.net/swig/?rev=11075&view=rev Author: wsfulton Date: 2009-01-21 18:55:32 +0000 (Wed, 21 Jan 2009) Log Message: ----------- correct ccache-swig title in docs Modified Paths: -------------- trunk/CCache/ccache.yo trunk/Doc/Manual/Contents.html Modified: trunk/CCache/ccache.yo =================================================================== --- trunk/CCache/ccache.yo 2009-01-19 02:22:53 UTC (rev 11074) +++ trunk/CCache/ccache.yo 2009-01-21 18:55:32 UTC (rev 11075) @@ -8,12 +8,12 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> -<title>swig-ccache(1) manpage</title> +<title>ccache-swig(1) manpage</title> <link rel="stylesheet" type="text/css" href="style.css"> </head> <body bgcolor="#ffffff"> -<H1><a name="CCache"></a>swig-ccache(1) manpage</H1> +<H1><a name="CCache"></a>ccache-swig(1) manpage</H1> <!-- INDEX --> <div class="sectiontoc"> <!-- INDEX --> Modified: trunk/Doc/Manual/Contents.html =================================================================== --- trunk/Doc/Manual/Contents.html 2009-01-19 02:22:53 UTC (rev 11074) +++ trunk/Doc/Manual/Contents.html 2009-01-21 18:55:32 UTC (rev 11075) @@ -483,7 +483,7 @@ </div> <!-- INDEX --> -<h3><a href="CCache.html#CCache">15 swig-ccache(1) manpage</a></h3> +<h3><a href="CCache.html#CCache">15 ccache-swig(1) manpage</a></h3> <!-- INDEX --> <div class="sectiontoc"> @@ -914,16 +914,31 @@ <li><a href="Lua.html#Lua_nn20">C++ templates</a> <li><a href="Lua.html#Lua_nn21">C++ Smart Pointers</a> <li><a href="Lua.html#Lua_nn22">C++ Exceptions</a> -<li><a href="Lua.html#Lua_nn23">Writing your own custom wrappers</a> -<li><a href="Lua.html#Lua_nn24">Adding additional Lua code</a> </ul> -<li><a href="Lua.html#Lua_nn25">Details on the Lua binding</a> +<li><a href="Lua.html#Lua_nn23">Typemaps</a> <ul> -<li><a href="Lua.html#Lua_nn26">Binding global data into the module.</a> -<li><a href="Lua.html#Lua_nn27">Userdata and Metatables</a> -<li><a href="Lua.html#Lua_nn28">Memory management</a> +<li><a href="Lua.html#Lua_nn24">What is a typemap?</a> +<li><a href="Lua.html#Lua_nn25">Using typemaps</a> +<li><a href="Lua.html#Lua_nn26">Typemaps and arrays</a> +<li><a href="Lua.html#Lua_nn27">Typemaps and pointer-pointer functions</a> </ul> +<li><a href="Lua.html#Lua_nn28">Writing typemaps</a> +<ul> +<li><a href="Lua.html#Lua_nn29">Typemaps you can write</a> +<li><a href="Lua.html#Lua_nn30">SWIG's Lua-C API</a> </ul> +<li><a href="Lua.html#Lua_nn31">Customization of your Bindings</a> +<ul> +<li><a href="Lua.html#Lua_nn32">Writing your own custom wrappers</a> +<li><a href="Lua.html#Lua_nn33">Adding additional Lua code</a> +</ul> +<li><a href="Lua.html#Lua_nn34">Details on the Lua binding</a> +<ul> +<li><a href="Lua.html#Lua_nn35">Binding global data into the module.</a> +<li><a href="Lua.html#Lua_nn36">Userdata and Metatables</a> +<li><a href="Lua.html#Lua_nn37">Memory management</a> +</ul> +</ul> </div> <!-- INDEX --> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wsf...@us...> - 2009-01-28 18:45:28
|
Revision: 11092 http://swig.svn.sourceforge.net/swig/?rev=11092&view=rev Author: wsfulton Date: 2009-01-28 18:45:13 +0000 (Wed, 28 Jan 2009) Log Message: ----------- Fix classLookup and enumLookup when the global scope operator is used on objects passed by value Modified Paths: -------------- trunk/CHANGES.current trunk/Examples/test-suite/common.mk trunk/Source/Modules/lang.cxx trunk/Source/Swig/typesys.c Added Paths: ----------- trunk/Examples/test-suite/global_namespace.i trunk/Examples/test-suite/java/global_namespace_runme.java Modified: trunk/CHANGES.current =================================================================== --- trunk/CHANGES.current 2009-01-28 16:10:16 UTC (rev 11091) +++ trunk/CHANGES.current 2009-01-28 18:45:13 UTC (rev 11092) @@ -1,6 +1,10 @@ Version 1.3.38 (in progress) ================================ +2008-01-28: wsfulton + [Java, C#] Fix proxy class not being used when the global scope operator + was used for parameters passed by value. Reported by David Piepgrass. + 2008-01-15: wsfulton [Perl] Fix seg fault when running with -v option, reported by John Ky. Modified: trunk/Examples/test-suite/common.mk =================================================================== --- trunk/Examples/test-suite/common.mk 2009-01-28 16:10:16 UTC (rev 11091) +++ trunk/Examples/test-suite/common.mk 2009-01-28 18:45:13 UTC (rev 11092) @@ -194,6 +194,7 @@ fragments \ friends \ fvirtual \ + global_namespace \ global_ns_arg \ global_vars \ grouping \ Added: trunk/Examples/test-suite/global_namespace.i =================================================================== --- trunk/Examples/test-suite/global_namespace.i (rev 0) +++ trunk/Examples/test-suite/global_namespace.i 2009-01-28 18:45:13 UTC (rev 11092) @@ -0,0 +1,60 @@ +%module global_namespace + +// classes +%inline %{ +class Klass1 {}; +class Klass2 {}; +class Klass3 {}; +class Klass4 {}; +class Klass5 {}; +class Klass6 {}; +class Klass7 {}; + +struct KlassMethods { + static void methodA(::Klass1 v, const ::Klass2 cv, const ::Klass3 *cp, ::Klass4 *p, const ::Klass5 &cr, ::Klass6 &r, Klass7*& pr) {} + static void methodB( Klass1 v, const Klass2 cv, const Klass3 *cp, Klass4 *p, const Klass5 &cr, Klass6 &r, Klass7*& pr) {} +}; +%} + +%inline %{ +namespace Space { +class XYZ1 {}; +class XYZ2 {}; +class XYZ3 {}; +class XYZ4 {}; +class XYZ5 {}; +class XYZ6 {}; +class XYZ7 {}; +} + +struct XYZMethods { + static void methodA(::Space::XYZ1 v, const ::Space::XYZ2 cv, const ::Space::XYZ3 *cp, ::Space::XYZ4 *p, const ::Space::XYZ5 &cr, ::Space::XYZ6 &r, Space::XYZ7*& pr) {} + static void methodB( Space::XYZ1 v, const Space::XYZ2 cv, const Space::XYZ3 *cp, Space::XYZ4 *p, const Space::XYZ5 &cr, Space::XYZ6 &r, Space::XYZ7*& pr) {} +}; +%} + +//enums +%inline %{ +enum AnEnum1 { anenum1 }; +enum AnEnum2 { anenum2 }; +enum AnEnum3 { anenum3 }; + +struct AnEnumMethods { + static void methodA(::AnEnum1 v, const ::AnEnum2 cv, const ::AnEnum3 &cr) {} + static void methodB( AnEnum1 v, const AnEnum2 cv, const AnEnum3 &cr) {} +}; +%} + +%inline %{ +namespace Space { +enum TheEnum1 { theenum1 }; +enum TheEnum2 { theenum2 }; +enum TheEnum3 { theenum3 }; + +struct TheEnumMethods { + static void methodA(::Space::TheEnum1 v, const ::Space::TheEnum2 cv, const ::Space::TheEnum3 &cr) {} + static void methodB( Space::TheEnum1 v, const Space::TheEnum2 cv, const Space::TheEnum3 &cr) {} +}; +} +%} + Added: trunk/Examples/test-suite/java/global_namespace_runme.java =================================================================== --- trunk/Examples/test-suite/java/global_namespace_runme.java (rev 0) +++ trunk/Examples/test-suite/java/global_namespace_runme.java 2009-01-28 18:45:13 UTC (rev 11092) @@ -0,0 +1,25 @@ +import global_namespace.*; + +public class global_namespace_runme { + + static { + try { + System.loadLibrary("global_namespace"); + } catch (UnsatisfiedLinkError e) { + System.err.println("Native code library failed to load. See the chapter on Dynamic Linking Problems in the SWIG Java documentation for help.\n" + e); + System.exit(1); + } + } + + public static void main(String argv[]) { + + KlassMethods.methodA(new Klass1(), new Klass2(), new Klass3(), new Klass4(), new Klass5(), new Klass6(), new Klass7()); + KlassMethods.methodB(new Klass1(), new Klass2(), new Klass3(), new Klass4(), new Klass5(), new Klass6(), new Klass7()); + + XYZMethods.methodA(new XYZ1(), new XYZ2(), new XYZ3(), new XYZ4(), new XYZ5(), new XYZ6(), new XYZ7()); + XYZMethods.methodB(new XYZ1(), new XYZ2(), new XYZ3(), new XYZ4(), new XYZ5(), new XYZ6(), new XYZ7()); + + TheEnumMethods.methodA(TheEnum1.theenum1, TheEnum2.theenum2, TheEnum3.theenum3); + TheEnumMethods.methodA(TheEnum1.theenum1, TheEnum2.theenum2, TheEnum3.theenum3); + } +} Modified: trunk/Source/Modules/lang.cxx =================================================================== --- trunk/Source/Modules/lang.cxx 2009-01-28 16:10:16 UTC (rev 11091) +++ trunk/Source/Modules/lang.cxx 2009-01-28 18:45:13 UTC (rev 11092) @@ -2960,14 +2960,9 @@ n = Getattr(classtypes, s); if (!n) { Symtab *stab = 0; -// SwigType *lt = SwigType_ltype(s); -// SwigType *ty1 = SwigType_typedef_resolve_all(lt); SwigType *ty1 = SwigType_typedef_resolve_all(s); SwigType *ty2 = SwigType_strip_qualifiers(ty1); -// Printf(stdout, " stages... ty1: %s ty2: %s\n", ty1, ty2); -// Delete(lt); Delete(ty1); -// lt = 0; ty1 = 0; String *base = SwigType_base(ty2); @@ -2976,6 +2971,12 @@ Replaceall(base, "struct ", ""); Replaceall(base, "union ", ""); + if (strncmp(Char(base), "::", 2) == 0) { + String *oldbase = base; + base = NewString(Char(base) + 2); + Delete(oldbase); + } + String *prefix = SwigType_prefix(ty2); /* Do a symbol table search on the base type */ @@ -3049,6 +3050,12 @@ Replaceall(base, "enum ", ""); String *prefix = SwigType_prefix(ty2); + if (strncmp(Char(base), "::", 2) == 0) { + String *oldbase = base; + base = NewString(Char(base) + 2); + Delete(oldbase); + } + /* Look for type in symbol table */ while (!n) { Hash *nstab; Modified: trunk/Source/Swig/typesys.c =================================================================== --- trunk/Source/Swig/typesys.c 2009-01-28 16:10:16 UTC (rev 11091) +++ trunk/Source/Swig/typesys.c 2009-01-28 18:45:13 UTC (rev 11092) @@ -840,6 +840,7 @@ * * Given a type declaration, this function tries to fully qualify it according to * typedef scope rules. + * Inconsistency to be fixed: ::Foo returns ::Foo, whereas ::Foo * returns Foo * * ----------------------------------------------------------------------------- */ SwigType *SwigType_typedef_qualified(SwigType *t) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wsf...@us...> - 2009-01-29 19:25:42
|
Revision: 11093 http://swig.svn.sourceforge.net/swig/?rev=11093&view=rev Author: wsfulton Date: 2009-01-29 19:25:37 +0000 (Thu, 29 Jan 2009) Log Message: ----------- Fix regression introduced in 1.3.37 where the default output directory for target language specific files (in the absence of -outdir) was no longer the same as the generated c/c++ file Modified Paths: -------------- trunk/CHANGES.current trunk/Doc/Manual/Modula3.html trunk/Doc/Manual/SWIG.html trunk/Source/Modules/main.cxx Modified: trunk/CHANGES.current =================================================================== --- trunk/CHANGES.current 2009-01-28 18:45:13 UTC (rev 11092) +++ trunk/CHANGES.current 2009-01-29 19:25:37 UTC (rev 11093) @@ -1,6 +1,11 @@ Version 1.3.38 (in progress) ================================ +2008-01-29: wsfulton + Fix regression introduced in 1.3.37 where the default output directory + for target language specific files (in the absence of -outdir) was no + longer the same directory as the generated c/c++ file. + 2008-01-28: wsfulton [Java, C#] Fix proxy class not being used when the global scope operator was used for parameters passed by value. Reported by David Piepgrass. Modified: trunk/Doc/Manual/Modula3.html =================================================================== --- trunk/Doc/Manual/Modula3.html 2009-01-28 18:45:13 UTC (rev 11092) +++ trunk/Doc/Manual/Modula3.html 2009-01-29 19:25:37 UTC (rev 11093) @@ -860,8 +860,8 @@ the C bit patterns (integer or bit set) into Modula-3 bit patterns (integer or bit set) and change the type as requested. -See the corresponding -<a href="../../Examples/modula3/enum/example.i">example</a>. +See the corresponding example in the +Examples/modula3/enum/example.i file. This is quite messy and not satisfying. So the best what you can currently do is to rewrite constant definitions manually. @@ -877,8 +877,8 @@ Declarations of C++ classes are mapped to <tt>OBJECT</tt> types while it is tried to retain the access hierarchy "public - protected - private" using partial revelation. -Though the -<a href="../../Examples/modula3/class/example.i">implementation</a> +Though the example in +Examples/modula3/class/example.i is not really useful, yet. </p> Modified: trunk/Doc/Manual/SWIG.html =================================================================== --- trunk/Doc/Manual/SWIG.html 2009-01-28 18:45:13 UTC (rev 11092) +++ trunk/Doc/Manual/SWIG.html 2009-01-29 19:25:37 UTC (rev 11093) @@ -247,6 +247,17 @@ pyfiles/example.py </pre></div> +<p> +If the <tt>-outcurrentdir</tt> option is used (without <tt>-o</tt>) +then SWIG behaves like a typical C/C++ +compiler and the default output directory is then the current directory. Without +this option the default output directory is the path to the input file. +If <tt>-o</tt> and +<tt>-outcurrentdir</tt> are used together, <tt>-outcurrentdir</tt> is effectively ignored +as the output directory for the language files is the same directory as the +generated C/C++ file if not overidden with <tt>-outdir</tt>. +</p> + <H3><a name="SWIG_nn5"></a>5.1.3 Comments</H3> Modified: trunk/Source/Modules/main.cxx =================================================================== --- trunk/Source/Modules/main.cxx 2009-01-28 18:45:13 UTC (rev 11092) +++ trunk/Source/Modules/main.cxx 2009-01-29 19:25:37 UTC (rev 11093) @@ -273,15 +273,18 @@ static void set_outdir(const String *c_wrapper_file_dir) { + Printf(stdout, "outdir (10): %s\n", outdir); // Add file delimiter if not present in output directory name if (outdir && Len(outdir) != 0) { const char *outd = Char(outdir); if (strcmp(outd + strlen(outd) - strlen(SWIG_FILE_DELIMITER), SWIG_FILE_DELIMITER) != 0) Printv(outdir, SWIG_FILE_DELIMITER, NIL); } + Printf(stdout, "outdir (20): %s\n", outdir); // Use the C wrapper file's directory if the output directory has not been set by user if (!outdir) outdir = NewString(c_wrapper_file_dir); + Printf(stdout, "outdir (30): %s\n", outdir); } /* This function sets the name of the configuration file */ @@ -1162,6 +1165,7 @@ Setattr(top, "inputfile", input_file); char *basename = Swig_file_basename(outcurrentdir ? Swig_file_filename(infile): Char(infile)); +Printf(stdout, "basename: %s\n", basename); if (!outfile_name) { if (CPlusPlus || lang->cplus_runtime_mode()) { Setattr(top, "outfile", NewStringf("%s_wrap.%s", basename, cpp_extension)); @@ -1176,7 +1180,7 @@ } else { Setattr(top, "outfile_h", outfile_name_h); } - set_outdir(Swig_file_dirname(basename)); + set_outdir(Swig_file_dirname(Getattr(top, "outfile"))); if (Swig_contract_mode_get()) { Swig_contracts(top); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bh...@us...> - 2009-01-30 10:27:46
|
Revision: 11097 http://swig.svn.sourceforge.net/swig/?rev=11097&view=rev Author: bhy Date: 2009-01-30 10:27:37 +0000 (Fri, 30 Jan 2009) Log Message: ----------- Merged revisions 11085-11086,11088-11089 via svnmerge from https://swig.svn.sourceforge.net/svnroot/swig/branches/swig-2.0 ........ r11085 | bhy | 2009-01-25 00:21:55 +0800 (Sun, 25 Jan 2009) | 2 lines Fix const-correctness. ........ r11086 | bhy | 2009-01-25 02:08:50 +0800 (Sun, 25 Jan 2009) | 2 lines Correct some function definition in header files, which implementation changed in previous commit caused mismatch. ........ r11088 | bhy | 2009-01-25 02:38:32 +0800 (Sun, 25 Jan 2009) | 1 line minor fix and now SWIG is alive again ........ r11089 | bhy | 2009-01-25 06:07:07 +0800 (Sun, 25 Jan 2009) | 1 line Correct some bug introduced in previous commits. Now SWIG is pretty good with C++ compiler. ........ Modified Paths: -------------- trunk/Source/CParse/cparse.h trunk/Source/CParse/cscanner.c trunk/Source/CParse/parser.y trunk/Source/CParse/templ.c trunk/Source/DOH/base.c trunk/Source/DOH/doh.h trunk/Source/Preprocessor/cpp.c trunk/Source/Swig/cwrap.c trunk/Source/Swig/misc.c trunk/Source/Swig/naming.c trunk/Source/Swig/scanner.c trunk/Source/Swig/swig.h trunk/Source/Swig/symbol.c trunk/Source/Swig/typemap.c trunk/Source/Swig/typesys.c Property Changed: ---------------- trunk/ trunk/Examples/GIFPlot/Php/ trunk/Examples/GIFPlot/Php/full/runme.php trunk/Examples/GIFPlot/Php/shadow/runme.php trunk/Examples/GIFPlot/Php/simple/runme.php trunk/Examples/php/class/runme.php trunk/Examples/php/constants/runme.php trunk/Examples/php/cpointer/runme.php trunk/Examples/php/disown/runme.php trunk/Examples/php/enum/runme.php trunk/Examples/php/funcptr/runme.php trunk/Examples/php/overloading/runme.php trunk/Examples/php/pointer/runme.php trunk/Examples/php/pragmas/runme.php trunk/Examples/php/proxy/runme.php trunk/Examples/php/reference/runme.php trunk/Examples/php/simple/runme.php trunk/Examples/php/sync/runme.php trunk/Examples/php/value/runme.php trunk/Examples/php/variables/runme.php trunk/Examples/test-suite/chicken/chicken_ext_test_runme.ss trunk/Examples/test-suite/chicken_ext_test.i trunk/Examples/test-suite/guilescm/guilescm_ext_test_runme.scm trunk/Examples/test-suite/guilescm_ext_test.i trunk/Examples/test-suite/implicittest.i trunk/Examples/test-suite/li_std_functors.i trunk/Examples/test-suite/li_std_list.i trunk/Examples/test-suite/li_std_pair_extra.i trunk/Examples/test-suite/li_std_pair_lang_object.i trunk/Examples/test-suite/li_std_queue.i trunk/Examples/test-suite/li_std_stack.i trunk/Examples/test-suite/li_std_string_extra.i trunk/Examples/test-suite/octave/li_std_pair_extra_runme.m trunk/Examples/test-suite/octave/li_std_string_extra_runme.m trunk/Examples/test-suite/octave/octave_cell_deref_runme.m trunk/Examples/test-suite/octave_cell_deref.i trunk/Examples/test-suite/php/abstract_inherit_ok_runme.php trunk/Examples/test-suite/php/abstract_inherit_runme.php trunk/Examples/test-suite/php/add_link_runme.php trunk/Examples/test-suite/php/argout_runme.php trunk/Examples/test-suite/php/arrayptr_runme.php trunk/Examples/test-suite/php/arrays_global_runme.php trunk/Examples/test-suite/php/arrays_global_twodim_runme.php trunk/Examples/test-suite/php/arrays_runme.php trunk/Examples/test-suite/php/arrays_scope_runme.php trunk/Examples/test-suite/php/casts_runme.php trunk/Examples/test-suite/php/class_ignore_runme.php trunk/Examples/test-suite/php/conversion_namespace_runme.php trunk/Examples/test-suite/php/conversion_ns_template_runme.php trunk/Examples/test-suite/php/conversion_runme.php trunk/Examples/test-suite/php/cpp_static_runme.php trunk/Examples/test-suite/php/enum_scope_template_runme.php trunk/Examples/test-suite/php/evil_diamond_ns_runme.php trunk/Examples/test-suite/php/evil_diamond_prop_runme.php trunk/Examples/test-suite/php/evil_diamond_runme.php trunk/Examples/test-suite/php/extend_template_ns_runme.php trunk/Examples/test-suite/php/extend_template_runme.php trunk/Examples/test-suite/php/grouping_runme.php trunk/Examples/test-suite/php/ignore_parameter_runme.php trunk/Examples/test-suite/php/li_carrays_runme.php trunk/Examples/test-suite/php/li_std_string_runme.php trunk/Examples/test-suite/php/rename_scope_runme.php trunk/Examples/test-suite/php/skel.php trunk/Examples/test-suite/php/smart_pointer_rename_runme.php trunk/Examples/test-suite/php/sym_runme.php trunk/Examples/test-suite/php/template_arg_typename_runme.php trunk/Examples/test-suite/php/template_construct_runme.php trunk/Examples/test-suite/php/tests.php trunk/Examples/test-suite/php/typedef_reference_runme.php trunk/Examples/test-suite/php/typemap_ns_using_runme.php trunk/Examples/test-suite/php/using1_runme.php trunk/Examples/test-suite/php/using2_runme.php trunk/Examples/test-suite/php/valuewrapper_base_runme.php trunk/Examples/test-suite/php_namewarn_rename.i trunk/Examples/test-suite/python/li_std_pair_extra_runme.py trunk/Examples/test-suite/python/li_std_string_extra_runme.py trunk/Examples/test-suite/r/r_copy_struct_runme.R trunk/Examples/test-suite/r/r_double_delete_runme.R trunk/Examples/test-suite/r/r_legacy_runme.R trunk/Examples/test-suite/r_copy_struct.i trunk/Examples/test-suite/r_double_delete.i trunk/Examples/test-suite/r_legacy.i trunk/Examples/test-suite/ruby/ruby_keywords_runme.rb trunk/Examples/test-suite/ruby/ruby_li_std_speed_runme.rb trunk/Examples/test-suite/ruby/ruby_naming_runme.rb trunk/Examples/test-suite/ruby/ruby_track_objects_directors_runme.rb trunk/Examples/test-suite/ruby/ruby_track_objects_runme.rb trunk/Examples/test-suite/ruby_keywords.i trunk/Examples/test-suite/ruby_li_std_speed.i trunk/Examples/test-suite/ruby_naming.i trunk/Examples/test-suite/ruby_track_objects.i trunk/Examples/test-suite/ruby_track_objects_directors.i trunk/Examples/test-suite/simple_array.i trunk/Examples/test-suite/stl_new.i trunk/Examples/test-suite/union_parameter.i Property changes on: trunk ___________________________________________________________________ Modified: svnmerge-integrated - /branches/gsoc2008-bhy:1-10819 /branches/swig-2.0:1-11081 + /branches/gsoc2008-bhy:1-10819 /branches/swig-2.0:1-11081,11085-11086,11088-11089 Added: svn:mergeinfo + /branches/swig-2.0:11085-11086,11088-11089 Property changes on: trunk/Examples/GIFPlot/Php ___________________________________________________________________ Modified: svn:mergeinfo - + /branches/swig-2.0/Examples/GIFPlot/Php:11085-11086,11088-11089 Property changes on: trunk/Examples/GIFPlot/Php/full/runme.php ___________________________________________________________________ Deleted: svn:mergeinfo - Property changes on: trunk/Examples/GIFPlot/Php/shadow/runme.php ___________________________________________________________________ Deleted: svn:mergeinfo - Property changes on: trunk/Examples/GIFPlot/Php/simple/runme.php ___________________________________________________________________ Deleted: svn:mergeinfo - Property changes on: trunk/Examples/php/class/runme.php ___________________________________________________________________ Modified: svn:mergeinfo - + /branches/swig-2.0/Examples/php/class/runme.php:11085-11086,11088-11089 Property changes on: trunk/Examples/php/constants/runme.php ___________________________________________________________________ Modified: svn:mergeinfo - + /branches/swig-2.0/Examples/php/constants/runme.php:11085-11086,11088-11089 Property changes on: trunk/Examples/php/cpointer/runme.php ___________________________________________________________________ Modified: svn:mergeinfo - + /branches/swig-2.0/Examples/php/cpointer/runme.php:11085-11086,11088-11089 Property changes on: trunk/Examples/php/disown/runme.php ___________________________________________________________________ Modified: svn:mergeinfo - + /branches/swig-2.0/Examples/php/disown/runme.php:11085-11086,11088-11089 Property changes on: trunk/Examples/php/enum/runme.php ___________________________________________________________________ Modified: svn:mergeinfo - + /branches/swig-2.0/Examples/php/enum/runme.php:11085-11086,11088-11089 Property changes on: trunk/Examples/php/funcptr/runme.php ___________________________________________________________________ Modified: svn:mergeinfo - + /branches/swig-2.0/Examples/php/funcptr/runme.php:11085-11086,11088-11089 Property changes on: trunk/Examples/php/overloading/runme.php ___________________________________________________________________ Modified: svn:mergeinfo - + /branches/swig-2.0/Examples/php/overloading/runme.php:11085-11086,11088-11089 Property changes on: trunk/Examples/php/pointer/runme.php ___________________________________________________________________ Modified: svn:mergeinfo - + /branches/swig-2.0/Examples/php/pointer/runme.php:11085-11086,11088-11089 Property changes on: trunk/Examples/php/pragmas/runme.php ___________________________________________________________________ Modified: svn:mergeinfo - + /branches/swig-2.0/Examples/php/pragmas/runme.php:11085-11086,11088-11089 Property changes on: trunk/Examples/php/proxy/runme.php ___________________________________________________________________ Modified: svn:mergeinfo - + /branches/swig-2.0/Examples/php/proxy/runme.php:11085-11086,11088-11089 Property changes on: trunk/Examples/php/reference/runme.php ___________________________________________________________________ Modified: svn:mergeinfo - + /branches/swig-2.0/Examples/php/reference/runme.php:11085-11086,11088-11089 Property changes on: trunk/Examples/php/simple/runme.php ___________________________________________________________________ Modified: svn:mergeinfo - + /branches/swig-2.0/Examples/php/simple/runme.php:11085-11086,11088-11089 Property changes on: trunk/Examples/php/sync/runme.php ___________________________________________________________________ Modified: svn:mergeinfo - + /branches/swig-2.0/Examples/php/sync/runme.php:11085-11086,11088-11089 Property changes on: trunk/Examples/php/value/runme.php ___________________________________________________________________ Modified: svn:mergeinfo - + /branches/swig-2.0/Examples/php/value/runme.php:11085-11086,11088-11089 Property changes on: trunk/Examples/php/variables/runme.php ___________________________________________________________________ Modified: svn:mergeinfo - + /branches/swig-2.0/Examples/php/variables/runme.php:11085-11086,11088-11089 Property changes on: trunk/Examples/test-suite/chicken/chicken_ext_test_runme.ss ___________________________________________________________________ Modified: svn:mergeinfo - + /branches/swig-2.0/Examples/test-suite/chicken/chicken_ext_test_runme.ss:11085-11086,11088-11089 Property changes on: trunk/Examples/test-suite/chicken_ext_test.i ___________________________________________________________________ Modified: svn:mergeinfo - + /branches/swig-2.0/Examples/test-suite/chicken_ext_test.i:11085-11086,11088-11089 Property changes on: trunk/Examples/test-suite/guilescm/guilescm_ext_test_runme.scm ___________________________________________________________________ Modified: svn:mergeinfo - + /branches/swig-2.0/Examples/test-suite/guilescm/guilescm_ext_test_runme.scm:11085-11086,11088-11089 Property changes on: trunk/Examples/test-suite/guilescm_ext_test.i ___________________________________________________________________ Modified: svn:mergeinfo - + /branches/swig-2.0/Examples/test-suite/guilescm_ext_test.i:11085-11086,11088-11089 Property changes on: trunk/Examples/test-suite/implicittest.i ___________________________________________________________________ Modified: svn:mergeinfo - + /branches/swig-2.0/Examples/test-suite/implicittest.i:11085-11086,11088-11089 Property changes on: trunk/Examples/test-suite/li_std_functors.i ___________________________________________________________________ Modified: svn:mergeinfo - + /branches/swig-2.0/Examples/test-suite/li_std_functors.i:11085-11086,11088-11089 Property changes on: trunk/Examples/test-suite/li_std_list.i ___________________________________________________________________ Modified: svn:mergeinfo - + /branches/swig-2.0/Examples/test-suite/li_std_list.i:11085-11086,11088-11089 Property changes on: trunk/Examples/test-suite/li_std_pair_extra.i ___________________________________________________________________ Modified: svn:mergeinfo - + /branches/swig-2.0/Examples/test-suite/li_std_pair_extra.i:11085-11086,11088-11089 Property changes on: trunk/Examples/test-suite/li_std_pair_lang_object.i ___________________________________________________________________ Modified: svn:mergeinfo - + /branches/swig-2.0/Examples/test-suite/li_std_pair_lang_object.i:11085-11086,11088-11089 Property changes on: trunk/Examples/test-suite/li_std_queue.i ___________________________________________________________________ Modified: svn:mergeinfo - + /branches/swig-2.0/Examples/test-suite/li_std_queue.i:11085-11086,11088-11089 Property changes on: trunk/Examples/test-suite/li_std_stack.i ___________________________________________________________________ Modified: svn:mergeinfo - + /branches/swig-2.0/Examples/test-suite/li_std_stack.i:11085-11086,11088-11089 Property changes on: trunk/Examples/test-suite/li_std_string_extra.i ___________________________________________________________________ Modified: svn:mergeinfo - + /branches/swig-2.0/Examples/test-suite/li_std_string_extra.i:11085-11086,11088-11089 Property changes on: trunk/Examples/test-suite/octave/li_std_pair_extra_runme.m ___________________________________________________________________ Modified: svn:mergeinfo - + /branches/swig-2.0/Examples/test-suite/octave/li_std_pair_extra_runme.m:11085-11086,11088-11089 Property changes on: trunk/Examples/test-suite/octave/li_std_string_extra_runme.m ___________________________________________________________________ Modified: svn:mergeinfo - + /branches/swig-2.0/Examples/test-suite/octave/li_std_string_extra_runme.m:11085-11086,11088-11089 Property changes on: trunk/Examples/test-suite/octave/octave_cell_deref_runme.m ___________________________________________________________________ Modified: svn:mergeinfo - + /branches/swig-2.0/Examples/test-suite/octave/octave_cell_deref_runme.m:11085-11086,11088-11089 Property changes on: trunk/Examples/test-suite/octave_cell_deref.i ___________________________________________________________________ Modified: svn:mergeinfo - + /branches/swig-2.0/Examples/test-suite/octave_cell_deref.i:11085-11086,11088-11089 Property changes on: trunk/Examples/test-suite/php/abstract_inherit_ok_runme.php ___________________________________________________________________ Modified: svn:mergeinfo - + /branches/swig-2.0/Examples/test-suite/php/abstract_inherit_ok_runme.php:11085-11086,11088-11089 Property changes on: trunk/Examples/test-suite/php/abstract_inherit_runme.php ___________________________________________________________________ Modified: svn:mergeinfo - + /branches/swig-2.0/Examples/test-suite/php/abstract_inherit_runme.php:11085-11086,11088-11089 Property changes on: trunk/Examples/test-suite/php/add_link_runme.php ___________________________________________________________________ Modified: svn:mergeinfo - + /branches/swig-2.0/Examples/test-suite/php/add_link_runme.php:11085-11086,11088-11089 Property changes on: trunk/Examples/test-suite/php/argout_runme.php ___________________________________________________________________ Modified: svn:mergeinfo - + /branches/swig-2.0/Examples/test-suite/php/argout_runme.php:11085-11086,11088-11089 Property changes on: trunk/Examples/test-suite/php/arrayptr_runme.php ___________________________________________________________________ Modified: svn:mergeinfo - + /branches/swig-2.0/Examples/test-suite/php/arrayptr_runme.php:11085-11086,11088-11089 Property changes on: trunk/Examples/test-suite/php/arrays_global_runme.php ___________________________________________________________________ Modified: svn:mergeinfo - + /branches/swig-2.0/Examples/test-suite/php/arrays_global_runme.php:11085-11086,11088-11089 Property changes on: trunk/Examples/test-suite/php/arrays_global_twodim_runme.php ___________________________________________________________________ Modified: svn:mergeinfo - + /branches/swig-2.0/Examples/test-suite/php/arrays_global_twodim_runme.php:11085-11086,11088-11089 Property changes on: trunk/Examples/test-suite/php/arrays_runme.php ___________________________________________________________________ Modified: svn:mergeinfo - + /branches/swig-2.0/Examples/test-suite/php/arrays_runme.php:11085-11086,11088-11089 Property changes on: trunk/Examples/test-suite/php/arrays_scope_runme.php ___________________________________________________________________ Modified: svn:mergeinfo - + /branches/swig-2.0/Examples/test-suite/php/arrays_scope_runme.php:11085-11086,11088-11089 Property changes on: trunk/Examples/test-suite/php/casts_runme.php ___________________________________________________________________ Modified: svn:mergeinfo - + /branches/swig-2.0/Examples/test-suite/php/casts_runme.php:11085-11086,11088-11089 Property changes on: trunk/Examples/test-suite/php/class_ignore_runme.php ___________________________________________________________________ Modified: svn:mergeinfo - + /branches/swig-2.0/Examples/test-suite/php/class_ignore_runme.php:11085-11086,11088-11089 Property changes on: trunk/Examples/test-suite/php/conversion_namespace_runme.php ___________________________________________________________________ Modified: svn:mergeinfo - + /branches/swig-2.0/Examples/test-suite/php/conversion_namespace_runme.php:11085-11086,11088-11089 Property changes on: trunk/Examples/test-suite/php/conversion_ns_template_runme.php ___________________________________________________________________ Modified: svn:mergeinfo - + /branches/swig-2.0/Examples/test-suite/php/conversion_ns_template_runme.php:11085-11086,11088-11089 Property changes on: trunk/Examples/test-suite/php/conversion_runme.php ___________________________________________________________________ Modified: svn:mergeinfo - + /branches/swig-2.0/Examples/test-suite/php/conversion_runme.php:11085-11086,11088-11089 Property changes on: trunk/Examples/test-suite/php/cpp_static_runme.php ___________________________________________________________________ Modified: svn:mergeinfo - + /branches/swig-2.0/Examples/test-suite/php/cpp_static_runme.php:11085-11086,11088-11089 Property changes on: trunk/Examples/test-suite/php/enum_scope_template_runme.php ___________________________________________________________________ Modified: svn:mergeinfo - + /branches/swig-2.0/Examples/test-suite/php/enum_scope_template_runme.php:11085-11086,11088-11089 Property changes on: trunk/Examples/test-suite/php/evil_diamond_ns_runme.php ___________________________________________________________________ Modified: svn:mergeinfo - + /branches/swig-2.0/Examples/test-suite/php/evil_diamond_ns_runme.php:11085-11086,11088-11089 Property changes on: trunk/Examples/test-suite/php/evil_diamond_prop_runme.php ___________________________________________________________________ Modified: svn:mergeinfo - + /branches/swig-2.0/Examples/test-suite/php/evil_diamond_prop_runme.php:11085-11086,11088-11089 Property changes on: trunk/Examples/test-suite/php/evil_diamond_runme.php ___________________________________________________________________ Modified: svn:mergeinfo - + /branches/swig-2.0/Examples/test-suite/php/evil_diamond_runme.php:11085-11086,11088-11089 Property changes on: trunk/Examples/test-suite/php/extend_template_ns_runme.php ___________________________________________________________________ Modified: svn:mergeinfo - + /branches/swig-2.0/Examples/test-suite/php/extend_template_ns_runme.php:11085-11086,11088-11089 Property changes on: trunk/Examples/test-suite/php/extend_template_runme.php ___________________________________________________________________ Modified: svn:mergeinfo - + /branches/swig-2.0/Examples/test-suite/php/extend_template_runme.php:11085-11086,11088-11089 Property changes on: trunk/Examples/test-suite/php/grouping_runme.php ___________________________________________________________________ Modified: svn:mergeinfo - + /branches/swig-2.0/Examples/test-suite/php/grouping_runme.php:11085-11086,11088-11089 Property changes on: trunk/Examples/test-suite/php/ignore_parameter_runme.php ___________________________________________________________________ Modified: svn:mergeinfo - + /branches/swig-2.0/Examples/test-suite/php/ignore_parameter_runme.php:11085-11086,11088-11089 Property changes on: trunk/Examples/test-suite/php/li_carrays_runme.php ___________________________________________________________________ Modified: svn:mergeinfo - + /branches/swig-2.0/Examples/test-suite/php/li_carrays_runme.php:11085-11086,11088-11089 Property changes on: trunk/Examples/test-suite/php/li_std_string_runme.php ___________________________________________________________________ Modified: svn:mergeinfo - + /branches/swig-2.0/Examples/test-suite/php/li_std_string_runme.php:11085-11086,11088-11089 Property changes on: trunk/Examples/test-suite/php/rename_scope_runme.php ___________________________________________________________________ Modified: svn:mergeinfo - + /branches/swig-2.0/Examples/test-suite/php/rename_scope_runme.php:11085-11086,11088-11089 Property changes on: trunk/Examples/test-suite/php/skel.php ___________________________________________________________________ Modified: svn:mergeinfo - + /branches/swig-2.0/Examples/test-suite/php/skel.php:11085-11086,11088-11089 Property changes on: trunk/Examples/test-suite/php/smart_pointer_rename_runme.php ___________________________________________________________________ Modified: svn:mergeinfo - + /branches/swig-2.0/Examples/test-suite/php/smart_pointer_rename_runme.php:11085-11086,11088-11089 Property changes on: trunk/Examples/test-suite/php/sym_runme.php ___________________________________________________________________ Modified: svn:mergeinfo - + /branches/swig-2.0/Examples/test-suite/php/sym_runme.php:11085-11086,11088-11089 Property changes on: trunk/Examples/test-suite/php/template_arg_typename_runme.php ___________________________________________________________________ Modified: svn:mergeinfo - + /branches/swig-2.0/Examples/test-suite/php/template_arg_typename_runme.php:11085-11086,11088-11089 Property changes on: trunk/Examples/test-suite/php/template_construct_runme.php ___________________________________________________________________ Modified: svn:mergeinfo - + /branches/swig-2.0/Examples/test-suite/php/template_construct_runme.php:11085-11086,11088-11089 Property changes on: trunk/Examples/test-suite/php/tests.php ___________________________________________________________________ Modified: svn:mergeinfo - + /branches/swig-2.0/Examples/test-suite/php/tests.php:11085-11086,11088-11089 Property changes on: trunk/Examples/test-suite/php/typedef_reference_runme.php ___________________________________________________________________ Modified: svn:mergeinfo - + /branches/swig-2.0/Examples/test-suite/php/typedef_reference_runme.php:11085-11086,11088-11089 Property changes on: trunk/Examples/test-suite/php/typemap_ns_using_runme.php ___________________________________________________________________ Modified: svn:mergeinfo - + /branches/swig-2.0/Examples/test-suite/php/typemap_ns_using_runme.php:11085-11086,11088-11089 Property changes on: trunk/Examples/test-suite/php/using1_runme.php ___________________________________________________________________ Modified: svn:mergeinfo - + /branches/swig-2.0/Examples/test-suite/php/using1_runme.php:11085-11086,11088-11089 Property changes on: trunk/Examples/test-suite/php/using2_runme.php ___________________________________________________________________ Modified: svn:mergeinfo - + /branches/swig-2.0/Examples/test-suite/php/using2_runme.php:11085-11086,11088-11089 Property changes on: trunk/Examples/test-suite/php/valuewrapper_base_runme.php ___________________________________________________________________ Modified: svn:mergeinfo - + /branches/swig-2.0/Examples/test-suite/php/valuewrapper_base_runme.php:11085-11086,11088-11089 Property changes on: trunk/Examples/test-suite/php_namewarn_rename.i ___________________________________________________________________ Modified: svn:mergeinfo - + /branches/swig-2.0/Examples/test-suite/php_namewarn_rename.i:11085-11086,11088-11089 Property changes on: trunk/Examples/test-suite/python/li_std_pair_extra_runme.py ___________________________________________________________________ Modified: svn:mergeinfo - + /branches/swig-2.0/Examples/test-suite/python/li_std_pair_extra_runme.py:11085-11086,11088-11089 Property changes on: trunk/Examples/test-suite/python/li_std_string_extra_runme.py ___________________________________________________________________ Modified: svn:mergeinfo - + /branches/swig-2.0/Examples/test-suite/python/li_std_string_extra_runme.py:11085-11086,11088-11089 Property changes on: trunk/Examples/test-suite/r/r_copy_struct_runme.R ___________________________________________________________________ Modified: svn:mergeinfo - + /branches/swig-2.0/Examples/test-suite/r/r_copy_struct_runme.R:11085-11086,11088-11089 Property changes on: trunk/Examples/test-suite/r/r_double_delete_runme.R ___________________________________________________________________ Modified: svn:mergeinfo - + /branches/swig-2.0/Examples/test-suite/r/r_double_delete_runme.R:11085-11086,11088-11089 Property changes on: trunk/Examples/test-suite/r/r_legacy_runme.R ___________________________________________________________________ Modified: svn:mergeinfo - + /branches/swig-2.0/Examples/test-suite/r/r_legacy_runme.R:11085-11086,11088-11089 Property changes on: trunk/Examples/test-suite/r_copy_struct.i ___________________________________________________________________ Modified: svn:mergeinfo - + /branches/swig-2.0/Examples/test-suite/r_copy_struct.i:11085-11086,11088-11089 Property changes on: trunk/Examples/test-suite/r_double_delete.i ___________________________________________________________________ Modified: svn:mergeinfo - + /branches/swig-2.0/Examples/test-suite/r_double_delete.i:11085-11086,11088-11089 Property changes on: trunk/Examples/test-suite/r_legacy.i ___________________________________________________________________ Modified: svn:mergeinfo - + /branches/swig-2.0/Examples/test-suite/r_legacy.i:11085-11086,11088-11089 Property changes on: trunk/Examples/test-suite/ruby/ruby_keywords_runme.rb ___________________________________________________________________ Modified: svn:mergeinfo - + /branches/swig-2.0/Examples/test-suite/ruby/ruby_keywords_runme.rb:11085-11086,11088-11089 Property changes on: trunk/Examples/test-suite/ruby/ruby_li_std_speed_runme.rb ___________________________________________________________________ Modified: svn:mergeinfo - + /branches/swig-2.0/Examples/test-suite/ruby/ruby_li_std_speed_runme.rb:11085-11086,11088-11089 Property changes on: trunk/Examples/test-suite/ruby/ruby_naming_runme.rb ___________________________________________________________________ Modified: svn:mergeinfo - + /branches/swig-2.0/Examples/test-suite/ruby/ruby_naming_runme.rb:11085-11086,11088-11089 Property changes on: trunk/Examples/test-suite/ruby/ruby_track_objects_directors_runme.rb ___________________________________________________________________ Modified: svn:mergeinfo - + /branches/swig-2.0/Examples/test-suite/ruby/ruby_track_objects_directors_runme.rb:11085-11086,11088-11089 Property changes on: trunk/Examples/test-suite/ruby/ruby_track_objects_runme.rb ___________________________________________________________________ Modified: svn:mergeinfo - + /branches/swig-2.0/Examples/test-suite/ruby/ruby_track_objects_runme.rb:11085-11086,11088-11089 Property changes on: trunk/Examples/test-suite/ruby_keywords.i ___________________________________________________________________ Modified: svn:mergeinfo - + /branches/swig-2.0/Examples/test-suite/ruby_keywords.i:11085-11086,11088-11089 Property changes on: trunk/Examples/test-suite/ruby_li_std_speed.i ___________________________________________________________________ Modified: svn:mergeinfo - + /branches/swig-2.0/Examples/test-suite/ruby_li_std_speed.i:11085-11086,11088-11089 Property changes on: trunk/Examples/test-suite/ruby_naming.i ___________________________________________________________________ Modified: svn:mergeinfo - + /branches/swig-2.0/Examples/test-suite/ruby_naming.i:11085-11086,11088-11089 Property changes on: trunk/Examples/test-suite/ruby_track_objects.i ___________________________________________________________________ Modified: svn:mergeinfo - + /branches/swig-2.0/Examples/test-suite/ruby_track_objects.i:11085-11086,11088-11089 Property changes on: trunk/Examples/test-suite/ruby_track_objects_directors.i ___________________________________________________________________ Modified: svn:mergeinfo - + /branches/swig-2.0/Examples/test-suite/ruby_track_objects_directors.i:11085-11086,11088-11089 Property changes on: trunk/Examples/test-suite/simple_array.i ___________________________________________________________________ Modified: svn:mergeinfo - + /branches/swig-2.0/Examples/test-suite/simple_array.i:11085-11086,11088-11089 Property changes on: trunk/Examples/test-suite/stl_new.i ___________________________________________________________________ Modified: svn:mergeinfo - + /branches/swig-2.0/Examples/test-suite/stl_new.i:11085-11086,11088-11089 Property changes on: trunk/Examples/test-suite/union_parameter.i ___________________________________________________________________ Modified: svn:mergeinfo - + /branches/swig-2.0/Examples/test-suite/union_parameter.i:11085-11086,11088-11089 Modified: trunk/Source/CParse/cparse.h =================================================================== --- trunk/Source/CParse/cparse.h 2009-01-30 09:15:35 UTC (rev 11096) +++ trunk/Source/CParse/cparse.h 2009-01-30 10:27:37 UTC (rev 11097) @@ -34,7 +34,7 @@ extern void scanner_ignore_typedef(void); extern void scanner_last_id(int); extern void scanner_clear_rename(void); - extern void scanner_set_location(const_String_or_char_ptr file, int line); + extern void scanner_set_location(String *file, int line); extern void scanner_set_main_input_file(String *file); extern String *scanner_get_main_input_file(); extern void Swig_cparse_follow_locators(int); Modified: trunk/Source/CParse/cscanner.c =================================================================== --- trunk/Source/CParse/cscanner.c 2009-01-30 09:15:35 UTC (rev 11096) +++ trunk/Source/CParse/cscanner.c 2009-01-30 10:27:37 UTC (rev 11097) @@ -442,7 +442,7 @@ static int check_typedef = 0; -void scanner_set_location(const_String_or_char_ptr file, int line) { +void scanner_set_location(String *file, int line) { Scanner_set_location(scan,file,line-1); } @@ -701,7 +701,7 @@ break; } else if (nexttok == SWIG_TOKEN_CODEBLOCK) { termtoken = SWIG_TOKEN_CODEBLOCK; - termvalue = Scanner_text(scan); + termvalue = Char(Scanner_text(scan)); break; } else if (nexttok == SWIG_TOKEN_LBRACE) { termtoken = SWIG_TOKEN_LBRACE; Modified: trunk/Source/CParse/parser.y =================================================================== --- trunk/Source/CParse/parser.y 2009-01-30 09:15:35 UTC (rev 11096) +++ trunk/Source/CParse/parser.y 2009-01-30 10:27:37 UTC (rev 11097) @@ -3334,7 +3334,7 @@ } else { max_class_levels *= 2; } - class_decl = realloc(class_decl, sizeof(Node*) * max_class_levels); + class_decl = (Node**) realloc(class_decl, sizeof(Node*) * max_class_levels); if (!class_decl) { Swig_error(cparse_file, cparse_line, "realloc() failed\n"); } @@ -3483,7 +3483,7 @@ } else { max_class_levels *= 2; } - class_decl = realloc(class_decl, sizeof(Node*) * max_class_levels); + class_decl = (Node**) realloc(class_decl, sizeof(Node*) * max_class_levels); if (!class_decl) { Swig_error(cparse_file, cparse_line, "realloc() failed\n"); } Modified: trunk/Source/CParse/templ.c =================================================================== --- trunk/Source/CParse/templ.c 2009-01-30 09:15:35 UTC (rev 11096) +++ trunk/Source/CParse/templ.c 2009-01-30 10:27:37 UTC (rev 11097) @@ -15,7 +15,7 @@ static int template_debug = 0; -String *baselists[3]; +const char *baselists[3]; void SwigType_template_init() { baselists[0] = "baselist"; Modified: trunk/Source/DOH/base.c =================================================================== --- trunk/Source/DOH/base.c 2009-01-30 09:15:35 UTC (rev 11096) +++ trunk/Source/DOH/base.c 2009-01-30 10:27:37 UTC (rev 11097) @@ -827,7 +827,7 @@ /* ----------------------------------------------------------------------------- * DohGetFile() * ----------------------------------------------------------------------------- */ -DOH *DohGetfile(DOH *ho) { +DOH *DohGetfile(const DOH *ho) { DohBase *h = (DohBase *) ho; DohObjInfo *objinfo; if (!h) @@ -854,7 +854,7 @@ /* ----------------------------------------------------------------------------- * DohGetLine() * ----------------------------------------------------------------------------- */ -int DohGetline(DOH *ho) { +int DohGetline(const DOH *ho) { DohBase *h = (DohBase *) ho; DohObjInfo *objinfo; if (!h) Modified: trunk/Source/DOH/doh.h =================================================================== --- trunk/Source/DOH/doh.h 2009-01-30 09:15:35 UTC (rev 11096) +++ trunk/Source/DOH/doh.h 2009-01-30 10:27:37 UTC (rev 11097) @@ -237,9 +237,9 @@ /* Positional */ -extern int DohGetline(DOH *obj); +extern int DohGetline(const DOH *obj); extern void DohSetline(DOH *obj, int line); -extern DOH *DohGetfile(DOH *obj); +extern DOH *DohGetfile(const DOH *obj); extern void DohSetfile(DOH *obj, DOH *file); /* String Methods */ Modified: trunk/Source/Preprocessor/cpp.c =================================================================== --- trunk/Source/Preprocessor/cpp.c 2009-01-30 09:15:35 UTC (rev 11096) +++ trunk/Source/Preprocessor/cpp.c 2009-01-30 10:27:37 UTC (rev 11097) @@ -85,7 +85,8 @@ Setattr(included_files, file, file); } if (!s) { - Seek(fn, 0, SEEK_SET); + /* XXX(bhy) may not need the seek */ + // Seek(fn, 0, SEEK_SET); if (ignore_missing) { Swig_warning(WARN_PP_MISSING_FILE, Getfile(fn), Getline(fn), "Unable to find '%s'\n", fn); } else { @@ -261,7 +262,7 @@ * ----------------------------------------------------------------------------- */ -const_String_or_char_ptr Macro_vararg_name(const_String_or_char_ptr str, const_String_or_char_ptr line) { +String *Macro_vararg_name(const_String_or_char_ptr str, const_String_or_char_ptr line) { String *argname; String *varargname; char *s, *dots; @@ -295,18 +296,18 @@ List *arglist = 0; int c, line; int varargs = 0; - const_String_or_char_ptr str = (const_String_or_char_ptr ) _str; + String *str; assert(cpp); - assert(str); + assert(_str); /* First make sure that string is actually a string */ - if (DohCheck(str)) { - s = Copy(str); - copy_location(str, s); + if (DohCheck(_str)) { + s = Copy(_str); + copy_location(_str, s); str = s; } else { - str = NewString((char *) str); + str = NewString((char *) _str); } Seek(str, 0, SEEK_SET); line = Getline(str); Modified: trunk/Source/Swig/cwrap.c =================================================================== --- trunk/Source/Swig/cwrap.c 2009-01-30 09:15:35 UTC (rev 11096) +++ trunk/Source/Swig/cwrap.c 2009-01-30 10:27:37 UTC (rev 11097) @@ -683,7 +683,7 @@ * * ----------------------------------------------------------------------------- */ -String *Swig_cmemberset_call(const_String_or_char_ptr name, SwigType *type, const_String_or_char_ptr self, int varcref) { +String *Swig_cmemberset_call(const_String_or_char_ptr name, SwigType *type, String *self, int varcref) { String *func; String *pname0 = Swig_cparm_name(0, 0); String *pname1 = Swig_cparm_name(0, 1); @@ -718,7 +718,7 @@ * * ----------------------------------------------------------------------------- */ -String *Swig_cmemberget_call(const_String_or_char_ptr name, SwigType *t, const_String_or_char_ptr self, int varcref) { +String *Swig_cmemberget_call(const_String_or_char_ptr name, SwigType *t, String *self, int varcref) { String *func; String *call; String *pname0 = Swig_cparm_name(0, 0); Modified: trunk/Source/Swig/misc.c =================================================================== --- trunk/Source/Swig/misc.c 2009-01-30 09:15:35 UTC (rev 11096) +++ trunk/Source/Swig/misc.c 2009-01-30 10:27:37 UTC (rev 11097) @@ -651,7 +651,7 @@ * In this case, "A::B". Returns NULL if there is no base. * ----------------------------------------------------------------------------- */ -void Swig_scopename_split(String *s, String **rprefix, String **rlast) { +void Swig_scopename_split(const String *s, String **rprefix, String **rlast) { char *tmp = Char(s); char *c = tmp; char *cc = c; @@ -705,7 +705,7 @@ } -String *Swig_scopename_prefix(String *s) { +String *Swig_scopename_prefix(const String *s) { char *tmp = Char(s); char *c = tmp; char *cc = c; @@ -757,7 +757,7 @@ * case, "C". * ----------------------------------------------------------------------------- */ -String *Swig_scopename_last(String *s) { +String *Swig_scopename_last(const String *s) { char *tmp = Char(s); char *c = tmp; char *cc = c; @@ -801,7 +801,7 @@ * In this case, "A". Returns NULL if there is no base. * ----------------------------------------------------------------------------- */ -String *Swig_scopename_first(String *s) { +String *Swig_scopename_first(const String *s) { char *tmp = Char(s); char *c = tmp; char *co = 0; @@ -851,7 +851,7 @@ * In this case, "B::C". Returns NULL if there is no suffix. * ----------------------------------------------------------------------------- */ -String *Swig_scopename_suffix(String *s) { +String *Swig_scopename_suffix(const String *s) { char *tmp = Char(s); char *c = tmp; char *co = 0; @@ -895,7 +895,7 @@ * Checks to see if a name is qualified with a scope name * ----------------------------------------------------------------------------- */ -int Swig_scopename_check(String *s) { +int Swig_scopename_check(const String *s) { char *c = Char(s); char *co = strstr(c, "operator "); Modified: trunk/Source/Swig/naming.c =================================================================== --- trunk/Source/Swig/naming.c 2009-01-30 09:15:35 UTC (rev 11096) +++ trunk/Source/Swig/naming.c 2009-01-30 10:27:37 UTC (rev 11097) @@ -600,7 +600,7 @@ * ----------------------------------------------------------------------------- */ static -void features_get(Hash *features, String *tname, SwigType *decl, SwigType *ncdecl, Node *node) { +void features_get(Hash *features, const String *tname, SwigType *decl, SwigType *ncdecl, Node *node) { Node *n = Getattr(features, tname); #ifdef SWIG_DEBUG Printf(stdout, " features_get: %s\n", tname); Modified: trunk/Source/Swig/scanner.c =================================================================== --- trunk/Source/Swig/scanner.c 2009-01-30 09:15:35 UTC (rev 11096) +++ trunk/Source/Swig/scanner.c 2009-01-30 10:27:37 UTC (rev 11097) @@ -122,7 +122,7 @@ assert(s); assert((nt >= 0) && (nt < SWIG_MAXTOKENS)); s->nexttoken = nt; - if (val != s->text) { + if ( Char(val) != Char(s->text) ) { Clear(s->text); Append(s->text,val); } Modified: trunk/Source/Swig/swig.h =================================================================== --- trunk/Source/Swig/swig.h 2009-01-30 09:15:35 UTC (rev 11096) +++ trunk/Source/Swig/swig.h 2009-01-30 10:27:37 UTC (rev 11097) @@ -185,7 +185,7 @@ extern Typetab *SwigType_pop_scope(void); extern Typetab *SwigType_set_scope(Typetab *h); extern void SwigType_print_scope(Typetab *t); - extern SwigType *SwigType_typedef_resolve(SwigType *t); + extern SwigType *SwigType_typedef_resolve(const SwigType *t); extern SwigType *SwigType_typedef_resolve_all(SwigType *t); extern SwigType *SwigType_typedef_qualified(SwigType *t); extern int SwigType_istypedef(SwigType *t); @@ -291,12 +291,12 @@ extern void Swig_filename_correct(String *filename); extern String *Swig_string_escape(String *s); extern String *Swig_string_mangle(const String *s); - extern void Swig_scopename_split(String *s, String **prefix, String **last); - extern String *Swig_scopename_prefix(String *s); - extern String *Swig_scopename_last(String *s); - extern String *Swig_scopename_first(String *s); - extern String *Swig_scopename_suffix(String *s); - extern int Swig_scopename_check(String *s); + extern void Swig_scopename_split(const String *s, String **prefix, String **last); + extern String *Swig_scopename_prefix(const String *s); + extern String *Swig_scopename_last(const String *s); + extern String *Swig_scopename_first(const String *s); + extern String *Swig_scopename_suffix(const String *s); + extern int Swig_scopename_check(const String *s); extern String *Swig_string_lower(String *s); extern String *Swig_string_upper(String *s); extern String *Swig_string_title(String *s); Modified: trunk/Source/Swig/symbol.c =================================================================== --- trunk/Source/Swig/symbol.c 2009-01-30 09:15:35 UTC (rev 11096) +++ trunk/Source/Swig/symbol.c 2009-01-30 10:27:37 UTC (rev 11097) @@ -827,7 +827,7 @@ * verifying that a class hierarchy implements all pure virtual methods. * ----------------------------------------------------------------------------- */ -static Node *_symbol_lookup(String *name, Symtab *symtab, int (*check) (Node *n)) { +static Node *_symbol_lookup(const String *name, Symtab *symtab, int (*check) (Node *n)) { Node *n; List *inherit; Hash *sym = Getattr(symtab, "csymtab"); @@ -908,7 +908,7 @@ * symbol_lookup_qualified() * ----------------------------------------------------------------------------- */ -static Node *symbol_lookup_qualified(const_String_or_char_ptr name, Symtab *symtab, String *prefix, int local, int (*checkfunc) (Node *n)) { +static Node *symbol_lookup_qualified(const_String_or_char_ptr name, Symtab *symtab, const String *prefix, int local, int (*checkfunc) (Node *n)) { /* This is a little funky, we search by fully qualified names */ if (!symtab) @@ -928,6 +928,7 @@ /* Make qualified name of current scope */ String *qalloc = 0; String *qname = Swig_symbol_qualifiedscopename(symtab); + const String *cqname; if (qname) { if (Len(qname)) { if (prefix && Len(prefix)) { @@ -937,10 +938,11 @@ Append(qname, prefix); } qalloc = qname; + cqname = qname; } else { - qname = prefix; + cqname = prefix; } - st = Getattr(symtabs, qname); + st = Getattr(symtabs, cqname); /* Found a scope match */ if (st) { if (!name) { Modified: trunk/Source/Swig/typemap.c =================================================================== --- trunk/Source/Swig/typemap.c 2009-01-30 09:15:35 UTC (rev 11096) +++ trunk/Source/Swig/typemap.c 2009-01-30 10:27:37 UTC (rev 11097) @@ -1467,7 +1467,7 @@ * given typemap type * ----------------------------------------------------------------------------- */ -String *Swig_typemap_get_option(Hash *tm, String *name) { +String *Swig_typemap_get_option(Hash *tm, const_String_or_char_ptr name) { Parm *kw = Getattr(tm, "kwargs"); while (kw) { String *kname = Getattr(kw, "name"); Modified: trunk/Source/Swig/typesys.c =================================================================== --- trunk/Source/Swig/typesys.c 2009-01-30 09:15:35 UTC (rev 11096) +++ trunk/Source/Swig/typesys.c 2009-01-30 10:27:37 UTC (rev 11097) @@ -539,7 +539,7 @@ * ----------------------------------------------------------------------------- */ /* #define SWIG_DEBUG */ -SwigType *SwigType_typedef_resolve(SwigType *t) { +SwigType *SwigType_typedef_resolve(const SwigType *t) { String *base; String *type = 0; String *r = 0; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bh...@us...> - 2009-01-31 13:38:43
|
Revision: 11099 http://swig.svn.sourceforge.net/swig/?rev=11099&view=rev Author: bhy Date: 2009-01-31 13:38:39 +0000 (Sat, 31 Jan 2009) Log Message: ----------- Fix SF#2552048. Remove the 'self' parameter in Python proxy code for static member function. Modified Paths: -------------- trunk/CHANGES.current trunk/Source/Modules/python.cxx Added Paths: ----------- trunk/Examples/test-suite/python/cpp_static_runme.py Modified: trunk/CHANGES.current =================================================================== --- trunk/CHANGES.current 2009-01-30 10:32:59 UTC (rev 11098) +++ trunk/CHANGES.current 2009-01-31 13:38:39 UTC (rev 11099) @@ -1,5 +1,9 @@ Version 1.3.38 (in progress) ================================ +2008-01-31: bhy + [Python] Fix SF#2552048 reported by Gaetan Lehmann. The parameter list + of static member function in generated proxy code should not have the + 'self' parameter. 2008-01-29: wsfulton Fix regression introduced in 1.3.37 where the default output directory Added: trunk/Examples/test-suite/python/cpp_static_runme.py =================================================================== --- trunk/Examples/test-suite/python/cpp_static_runme.py (rev 0) +++ trunk/Examples/test-suite/python/cpp_static_runme.py 2009-01-31 13:38:39 UTC (rev 11099) @@ -0,0 +1,7 @@ +#!/usr/bin/evn python +from cpp_static import * +StaticFunctionTest.static_func() +StaticFunctionTest.static_func_2(1) +StaticFunctionTest.static_func_3(1,2) +StaticMemberTest.static_int = 10 +assert StaticMemberTest.static_int == 10 Modified: trunk/Source/Modules/python.cxx =================================================================== --- trunk/Source/Modules/python.cxx 2009-01-30 10:32:59 UTC (rev 11098) +++ trunk/Source/Modules/python.cxx 2009-01-31 13:38:39 UTC (rev 11099) @@ -3159,8 +3159,8 @@ if (shadow) { if (!classic && !Getattr(n, "feature:python:callback") && have_addtofunc(n)) { int kw = (check_kwargs(n) && !Getattr(n, "sym:overloaded")) ? 1 : 0; - String *parms = make_pyParmList(n, true, false, kw); - String *callParms = make_pyParmList(n, true, true, kw); + String *parms = make_pyParmList(n, false, false, kw); + String *callParms = make_pyParmList(n, false, true, kw); Printv(f_shadow, tab4, "def ", symname, "(", parms, ")", returnTypeAnnotation(n), ":\n", NIL); if (have_docstring(n)) Printv(f_shadow, tab8, docstring(n, AUTODOC_STATICFUNC, tab8), "\n", NIL); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bh...@us...> - 2009-01-31 14:37:57
|
Revision: 11100 http://swig.svn.sourceforge.net/swig/?rev=11100&view=rev Author: bhy Date: 2009-01-31 14:37:54 +0000 (Sat, 31 Jan 2009) Log Message: ----------- Fix SF#2552488: indentation adjust of %pythonappend and %pythonprepend Modified Paths: -------------- trunk/CHANGES.current trunk/Examples/test-suite/python/Makefile.in trunk/Source/Modules/python.cxx Added Paths: ----------- trunk/Examples/test-suite/python/python_append_runme.py trunk/Examples/test-suite/python_append.i Modified: trunk/CHANGES.current =================================================================== --- trunk/CHANGES.current 2009-01-31 13:38:39 UTC (rev 11099) +++ trunk/CHANGES.current 2009-01-31 14:37:54 UTC (rev 11100) @@ -1,10 +1,14 @@ Version 1.3.38 (in progress) ================================ 2008-01-31: bhy - [Python] Fix SF#2552048 reported by Gaetan Lehmann. The parameter list - of static member function in generated proxy code should not have the - 'self' parameter. + [Python] Fix SF#2552488 reported by Gaetan Lehmann. Now %pythonprepend + and %pythonappend have correct indentation. +2008-01-31: bhy + [Python] Fix SF#2552048 reported by Gaetan Lehmann. The parameter list + of static member function in generated proxy code should not have the + 'self' parameter. + 2008-01-29: wsfulton Fix regression introduced in 1.3.37 where the default output directory for target language specific files (in the absence of -outdir) was no Modified: trunk/Examples/test-suite/python/Makefile.in =================================================================== --- trunk/Examples/test-suite/python/Makefile.in 2009-01-31 13:38:39 UTC (rev 11099) +++ trunk/Examples/test-suite/python/Makefile.in 2009-01-31 14:37:54 UTC (rev 11100) @@ -32,6 +32,7 @@ CPP_TEST_CASES += \ argcargvtest \ python_autodoc \ + python_append \ callback \ complextest \ director_stl \ Added: trunk/Examples/test-suite/python/python_append_runme.py =================================================================== --- trunk/Examples/test-suite/python/python_append_runme.py (rev 0) +++ trunk/Examples/test-suite/python/python_append_runme.py 2009-01-31 14:37:54 UTC (rev 11100) @@ -0,0 +1,4 @@ +from python_append import * +t=Test() +t.func() +t.static_func() Added: trunk/Examples/test-suite/python_append.i =================================================================== --- trunk/Examples/test-suite/python_append.i (rev 0) +++ trunk/Examples/test-suite/python_append.i 2009-01-31 14:37:54 UTC (rev 11100) @@ -0,0 +1,32 @@ +/* +Testcase to test %pythonprepend and %pythonappend +*/ + +%module python_append + +%pythonappend Test::func %{ + pass +%} + +%pythonprepend Test::func %{ + pass +%} + +%pythonappend Test::static_func %{ +pass +%} + +%pythonprepend Test::static_func { + pass +} + +%inline %{ + +class Test { +public: + static void static_func() {}; + void func() {}; +}; + +%} + Modified: trunk/Source/Modules/python.cxx =================================================================== --- trunk/Source/Modules/python.cxx 2009-01-31 13:38:39 UTC (rev 11099) +++ trunk/Source/Modules/python.cxx 2009-01-31 14:37:54 UTC (rev 11100) @@ -958,7 +958,7 @@ * pythoncode() - Output python code into the shadow file * ------------------------------------------------------------ */ - String *pythoncode(String *code, const String *indent) { + String *pythoncode(String *code, const_String_or_char_ptr indent) { String *out = NewString(""); String *temp; char *t; @@ -1645,10 +1645,10 @@ if (have_docstring(n)) Printv(f_dest, " ", docstring(n, AUTODOC_FUNC, tab4), "\n", NIL); if (have_pythonprepend(n)) - Printv(f_dest, " ", pythonprepend(n), "\n", NIL); + Printv(f_dest, pythoncode(pythonprepend(n), " "), "\n", NIL); if (have_pythonappend(n)) { Printv(f_dest, " val = ", funcCall(name, callParms), "\n", NIL); - Printv(f_dest, " ", pythonappend(n), "\n", NIL); + Printv(f_dest, pythoncode(pythonappend(n), " "), "\n", NIL); Printv(f_dest, " return val\n", NIL); } else { Printv(f_dest, " return ", funcCall(name, callParms), "\n", NIL); @@ -3118,12 +3118,12 @@ Printv(f_shadow, tab8, docstring(n, AUTODOC_METHOD, tab8), "\n", NIL); if (have_pythonprepend(n)) { fproxy = 0; - Printv(f_shadow, tab8, pythonprepend(n), "\n", NIL); + Printv(f_shadow, pythoncode(pythonprepend(n), tab8), "\n", NIL); } if (have_pythonappend(n)) { fproxy = 0; Printv(f_shadow, tab8, "val = ", funcCall(Swig_name_member(class_name, symname), callParms), "\n", NIL); - Printv(f_shadow, tab8, pythonappend(n), "\n", NIL); + Printv(f_shadow, pythoncode(pythonappend(n), tab8), "\n", NIL); Printv(f_shadow, tab8, "return val\n\n", NIL); } else { Printv(f_shadow, tab8, "return ", funcCall(Swig_name_member(class_name, symname), callParms), "\n\n", NIL); @@ -3165,10 +3165,10 @@ if (have_docstring(n)) Printv(f_shadow, tab8, docstring(n, AUTODOC_STATICFUNC, tab8), "\n", NIL); if (have_pythonprepend(n)) - Printv(f_shadow, tab8, pythonprepend(n), "\n", NIL); + Printv(f_shadow, pythoncode(pythonprepend(n), tab8), "\n", NIL); if (have_pythonappend(n)) { Printv(f_shadow, tab8, "val = ", funcCall(Swig_name_member(class_name, symname), callParms), "\n", NIL); - Printv(f_shadow, tab8, pythonappend(n), "\n", NIL); + Printv(f_shadow, pythoncode(pythonappend(n), tab8), "\n", NIL); Printv(f_shadow, tab8, "return val\n\n", NIL); } else { Printv(f_shadow, tab8, "return ", funcCall(Swig_name_member(class_name, symname), callParms), "\n\n", NIL); @@ -3275,7 +3275,7 @@ if (have_docstring(n)) Printv(f_shadow, tab8, docstring(n, AUTODOC_CTOR, tab8), "\n", NIL); if (have_pythonprepend(n)) - Printv(f_shadow, tab8, pythonprepend(n), "\n", NIL); + Printv(f_shadow, pythoncode(pythonprepend(n), tab8), "\n", NIL); Printv(f_shadow, pass_self, NIL); if (fastinit) { Printv(f_shadow, tab8, module, ".", class_name, "_swiginit(self,", funcCall(Swig_name_construct(symname), callParms), ")\n", NIL); @@ -3285,7 +3285,7 @@ tab8, "try: self.this.append(this)\n", tab8, "except: self.this = this\n", NIL); } if (have_pythonappend(n)) - Printv(f_shadow, tab8, pythonappend(n), "\n\n", NIL); + Printv(f_shadow, pythoncode(pythonappend(n), tab8), "\n\n", NIL); Delete(pass_self); } have_constructor = 1; @@ -3308,13 +3308,13 @@ if (have_docstring(n)) Printv(f_shadow_stubs, tab4, docstring(n, AUTODOC_CTOR, tab4), "\n", NIL); if (have_pythonprepend(n)) - Printv(f_shadow_stubs, tab4, pythonprepend(n), "\n", NIL); + Printv(f_shadow_stubs, pythoncode(pythonprepend(n), tab4), "\n", NIL); Printv(f_shadow_stubs, tab4, "val = ", funcCall(Swig_name_construct(symname), callParms), "\n", NIL); #ifdef USE_THISOWN Printv(f_shadow_stubs, tab4, "val.thisown = 1\n", NIL); #endif if (have_pythonappend(n)) - Printv(f_shadow_stubs, tab4, pythonappend(n), "\n", NIL); + Printv(f_shadow_stubs, pythoncode(pythonappend(n), tab4), "\n", NIL); Printv(f_shadow_stubs, tab4, "return val\n", NIL); } } @@ -3356,7 +3356,7 @@ if (have_docstring(n)) Printv(f_shadow, tab8, docstring(n, AUTODOC_DTOR, tab8), "\n", NIL); if (have_pythonprepend(n)) - Printv(f_shadow, tab8, pythonprepend(n), "\n", NIL); + Printv(f_shadow, pythoncode(pythonprepend(n), tab8), "\n", NIL); #ifdef USE_THISOWN Printv(f_shadow, tab8, "try:\n", NIL); Printv(f_shadow, tab8, tab4, "if self.thisown: ", module, ".", Swig_name_destroy(symname), "(self)\n", NIL); @@ -3364,7 +3364,7 @@ #else #endif if (have_pythonappend(n)) - Printv(f_shadow, tab8, pythonappend(n), "\n", NIL); + Printv(f_shadow, pythoncode(pythonappend(n), tab8), "\n", NIL); Printv(f_shadow, tab8, "pass\n", NIL); Printv(f_shadow, "\n", NIL); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wsf...@us...> - 2009-01-31 19:38:01
|
Revision: 11103 http://swig.svn.sourceforge.net/swig/?rev=11103&view=rev Author: wsfulton Date: 2009-01-31 19:37:58 +0000 (Sat, 31 Jan 2009) Log Message: ----------- finishing touches for 1.3.38 Modified Paths: -------------- trunk/ANNOUNCE trunk/CHANGES.current trunk/Doc/Manual/Sections.html trunk/README Modified: trunk/ANNOUNCE =================================================================== --- trunk/ANNOUNCE 2009-01-31 19:10:55 UTC (rev 11102) +++ trunk/ANNOUNCE 2009-01-31 19:37:58 UTC (rev 11103) @@ -1,4 +1,4 @@ -*** ANNOUNCE: SWIG 1.3.38 (in progress) *** +*** ANNOUNCE: SWIG 1.3.38 (31 January 2009) *** http://www.swig.org Modified: trunk/CHANGES.current =================================================================== --- trunk/CHANGES.current 2009-01-31 19:10:55 UTC (rev 11102) +++ trunk/CHANGES.current 2009-01-31 19:37:58 UTC (rev 11103) @@ -1,4 +1,4 @@ -Version 1.3.38 (in progress) +Version 1.3.38 (31 January 2009) ================================ 2008-01-31: bhy Modified: trunk/Doc/Manual/Sections.html =================================================================== --- trunk/Doc/Manual/Sections.html 2009-01-31 19:10:55 UTC (rev 11102) +++ trunk/Doc/Manual/Sections.html 2009-01-31 19:37:58 UTC (rev 11103) @@ -6,7 +6,7 @@ <body bgcolor="#ffffff"> <H1><a name="Sections"></a>SWIG-1.3 Development Documentation</H1> -Last update : SWIG-1.3.38 (in progress) +Last update : SWIG-1.3.38 (31 January 2009) <H2>Sections</H2> Modified: trunk/README =================================================================== --- trunk/README 2009-01-31 19:10:55 UTC (rev 11102) +++ trunk/README 2009-01-31 19:37:58 UTC (rev 11103) @@ -1,6 +1,6 @@ SWIG (Simplified Wrapper and Interface Generator) -Version: 1.3.38 (in progress) +Version: 1.3.38 (31 January 2009) Tagline: SWIG is a compiler that integrates C and C++ with languages including Perl, Python, Tcl, Ruby, PHP, Java, Ocaml, Lua, @@ -91,6 +91,9 @@ What's New? =========== +SWIG-1.3.38 summary: +- Output directory regression fix and other minor bug fixes + SWIG-1.3.37 summary: - Python 3 support added - SWIG now ships with a version of ccache that can be used with SWIG. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wsf...@us...> - 2009-02-01 00:31:22
|
Revision: 11107 http://swig.svn.sourceforge.net/swig/?rev=11107&view=rev Author: wsfulton Date: 2009-02-01 00:31:19 +0000 (Sun, 01 Feb 2009) Log Message: ----------- bump version to 1.3.39 Modified Paths: -------------- trunk/ANNOUNCE trunk/CHANGES trunk/CHANGES.current trunk/Doc/Manual/Sections.html trunk/TODO trunk/configure.in Modified: trunk/ANNOUNCE =================================================================== --- trunk/ANNOUNCE 2009-02-01 00:28:38 UTC (rev 11106) +++ trunk/ANNOUNCE 2009-02-01 00:31:19 UTC (rev 11107) @@ -1,10 +1,10 @@ -*** ANNOUNCE: SWIG 1.3.38 (31 January 2009) *** +*** ANNOUNCE: SWIG 1.3.39 (in progress) *** http://www.swig.org -We're pleased to announce SWIG-1.3.38, the latest installment in the -SWIG development effort. SWIG-1.3.38 includes a number of bug fixes +We're pleased to announce SWIG-1.3.39, the latest installment in the +SWIG development effort. SWIG-1.3.39 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.38.tar.gz + http://prdownloads.sourceforge.net/swig/swig-1.3.39.tar.gz A Windows version is also available at - http://prdownloads.sourceforge.net/swig/swigwin-1.3.38.zip + http://prdownloads.sourceforge.net/swig/swigwin-1.3.39.zip Release numbers --------------- Modified: trunk/CHANGES =================================================================== --- trunk/CHANGES 2009-02-01 00:28:38 UTC (rev 11106) +++ trunk/CHANGES 2009-02-01 00:31:19 UTC (rev 11107) @@ -2,6 +2,30 @@ See CHANGES.current for current version. +Version 1.3.38 (31 January 2009) +================================ + +2008-01-31: bhy + [Python] Fix SF#2552488 reported by Gaetan Lehmann. Now %pythonprepend + and %pythonappend have correct indentation. + +2008-01-31: bhy + [Python] Fix SF#2552048 reported by Gaetan Lehmann. The parameter list + of static member function in generated proxy code should not have the + 'self' parameter. + +2008-01-29: wsfulton + Fix regression introduced in 1.3.37 where the default output directory + for target language specific files (in the absence of -outdir) was no + longer the same directory as the generated c/c++ file. + +2008-01-28: wsfulton + [Java, C#] Fix proxy class not being used when the global scope operator + was used for parameters passed by value. Reported by David Piepgrass. + +2008-01-15: wsfulton + [Perl] Fix seg fault when running with -v option, reported by John Ky. + Version 1.3.37 (13 January 2009) ================================ Modified: trunk/CHANGES.current =================================================================== --- trunk/CHANGES.current 2009-02-01 00:28:38 UTC (rev 11106) +++ trunk/CHANGES.current 2009-02-01 00:31:19 UTC (rev 11107) @@ -1,24 +1,3 @@ -Version 1.3.38 (31 January 2009) -================================ +Version 1.3.39 (in progress) +============================ -2008-01-31: bhy - [Python] Fix SF#2552488 reported by Gaetan Lehmann. Now %pythonprepend - and %pythonappend have correct indentation. - -2008-01-31: bhy - [Python] Fix SF#2552048 reported by Gaetan Lehmann. The parameter list - of static member function in generated proxy code should not have the - 'self' parameter. - -2008-01-29: wsfulton - Fix regression introduced in 1.3.37 where the default output directory - for target language specific files (in the absence of -outdir) was no - longer the same directory as the generated c/c++ file. - -2008-01-28: wsfulton - [Java, C#] Fix proxy class not being used when the global scope operator - was used for parameters passed by value. Reported by David Piepgrass. - -2008-01-15: wsfulton - [Perl] Fix seg fault when running with -v option, reported by John Ky. - Modified: trunk/Doc/Manual/Sections.html =================================================================== --- trunk/Doc/Manual/Sections.html 2009-02-01 00:28:38 UTC (rev 11106) +++ trunk/Doc/Manual/Sections.html 2009-02-01 00:31:19 UTC (rev 11107) @@ -6,7 +6,7 @@ <body bgcolor="#ffffff"> <H1><a name="Sections"></a>SWIG-1.3 Development Documentation</H1> -Last update : SWIG-1.3.38 (31 January 2009) +Last update : SWIG-1.3.39 (in progress) <H2>Sections</H2> Modified: trunk/TODO =================================================================== --- trunk/TODO 2009-02-01 00:28:38 UTC (rev 11106) +++ trunk/TODO 2009-02-01 00:31:19 UTC (rev 11107) @@ -1,6 +1,6 @@ SWIG TO-DO -Release: SWIG-1.3.38 +Release: SWIG-1.3.39 ----------------------------------------------------------------------------- Modified: trunk/configure.in =================================================================== --- trunk/configure.in 2009-02-01 00:28:38 UTC (rev 11106) +++ trunk/configure.in 2009-02-01 00:31:19 UTC (rev 11107) @@ -2,7 +2,7 @@ dnl The macros which aren't shipped with the autotools are stored in the dnl Tools/config directory in .m4 files. -AC_INIT([swig],[1.3.38],[http://www.swig.org]) +AC_INIT([swig],[1.3.39],[http://www.swig.org]) AC_PREREQ(2.58) AC_CONFIG_SRCDIR([Source/Swig/swig.h]) AC_CONFIG_AUX_DIR([Tools/config]) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ta...@us...> - 2009-02-05 15:47:49
|
Revision: 11110 http://swig.svn.sourceforge.net/swig/?rev=11110&view=rev Author: talby Date: 2009-02-05 15:47:42 +0000 (Thu, 05 Feb 2009) Log Message: ----------- Fix SF#2564192 Modified Paths: -------------- trunk/CHANGES.current trunk/Examples/test-suite/perl5/char_strings_runme.pl trunk/Lib/perl5/perlstrings.swg Modified: trunk/CHANGES.current =================================================================== --- trunk/CHANGES.current 2009-02-04 16:10:07 UTC (rev 11109) +++ trunk/CHANGES.current 2009-02-05 15:47:42 UTC (rev 11110) @@ -1,3 +1,6 @@ Version 1.3.39 (in progress) ============================ +2009-02-04: talby + [Perl] Fix SF#2564192 reported by David Kolovratnk. + SWIG_AsCharPtrAndSize() now handles "get" magic. Modified: trunk/Examples/test-suite/perl5/char_strings_runme.pl =================================================================== --- trunk/Examples/test-suite/perl5/char_strings_runme.pl 2009-02-04 16:10:07 UTC (rev 11109) +++ trunk/Examples/test-suite/perl5/char_strings_runme.pl 2009-02-05 15:47:42 UTC (rev 11110) @@ -1,6 +1,6 @@ use strict; use warnings; -use Test::More tests => 4; +use Test::More tests => 5; BEGIN { use_ok('char_strings') } require_ok('char_strings'); @@ -10,3 +10,6 @@ my $val2 = "greetings"; is(char_strings::CharPingPong($val2), "greetings", 'cstr2'); +# SF#2564192 +"this is a test" =~ /(\w+)$/; +is(char_strings::CharPingPong($1), "test", "handles Magical"); Modified: trunk/Lib/perl5/perlstrings.swg =================================================================== --- trunk/Lib/perl5/perlstrings.swg 2009-02-04 16:10:07 UTC (rev 11109) +++ trunk/Lib/perl5/perlstrings.swg 2009-02-05 15:47:42 UTC (rev 11110) @@ -6,6 +6,11 @@ SWIGINTERN int SWIG_AsCharPtrAndSize(SV *obj, char** cptr, size_t* psize, int *alloc) { + if (SvMAGICAL(obj)) { + SV *tmp = sv_newmortal(); + SvSetSV(tmp, obj); + obj = tmp; + } if (SvPOK(obj)) { STRLEN len = 0; char *cstr = SvPV(obj, len); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wsf...@us...> - 2009-02-07 02:23:48
|
Revision: 11111 http://swig.svn.sourceforge.net/swig/?rev=11111&view=rev Author: wsfulton Date: 2009-02-07 01:58:39 +0000 (Sat, 07 Feb 2009) Log Message: ----------- Apply #2081967 configure changes for mzscheme configure errors and breaking of swig exe build Modified Paths: -------------- trunk/CHANGES.current trunk/configure.in Modified: trunk/CHANGES.current =================================================================== --- trunk/CHANGES.current 2009-02-05 15:47:42 UTC (rev 11110) +++ trunk/CHANGES.current 2009-02-07 01:58:39 UTC (rev 11111) @@ -1,6 +1,11 @@ Version 1.3.39 (in progress) ============================ +2008-02-07: wsfulton + [MzScheme] Apply #2081967 configure changes for examples to build with recent PLT versions. + Also fixes Makefile errors building SWIG executable when mzscheme package is installed + (version 3.72 approx and later). + 2009-02-04: talby [Perl] Fix SF#2564192 reported by David Kolovratnk. SWIG_AsCharPtrAndSize() now handles "get" magic. Modified: trunk/configure.in =================================================================== --- trunk/configure.in 2009-02-05 15:47:42 UTC (rev 11110) +++ trunk/configure.in 2009-02-07 01:58:39 UTC (rev 11111) @@ -1195,26 +1195,36 @@ # First, check for "--without-mzscheme" or "--with-mzscheme=no". if test x"${MZSCHEMEBIN}" = xno -o x"${with_alllang}" = xno ; then -AC_MSG_NOTICE([Disabling MzScheme]) -MZC= + AC_MSG_NOTICE([Disabling MzScheme]) + MZC= else + if test "x$MZSCHEMEBIN" = xyes; then + AC_PATH_PROG(MZSCHEME, mzscheme) + else + MZSCHEME="$MZSCHEMEBIN" + fi + + if test -z "$MZCBIN"; then + AC_PATH_PROG(MZC, mzc) + fi -if test "x$MZSCHEMEBIN" = xyes; then - AC_PATH_PROG(MZSCHEME, mzscheme) -else - MZSCHEME="$MZSCHEMEBIN" + if test -n "$MZSCHEME"; then + AC_MSG_CHECKING(for MzScheme dynext object) + MZDYNOBJ=`$MZSCHEME --eval '(begin (require dynext/link) (with-handlers (((lambda args #t) (lambda args #f))) (for-each (lambda (x) (printf "~a" x)) (expand-for-link-variant (current-standard-link-libraries)))))' 2>/dev/null` + if test -f "$MZDYNOBJ"; then + MZDYNOBJ="$MZDYNOBJ" + else + # older versions + MZDYNOBJ=`$MZSCHEME --mute-banner --version --eval '(begin (require (lib "link.ss" "dynext")) (with-handlers (((lambda args #t) (lambda args #f))) (for-each (lambda (x) (display x) (display " ")) ((current-make-standard-link-libraries)))) (with-handlers (((lambda args #t) (lambda args #f))) (for-each (lambda (x) (display x) (display " ")) (expand-for-link-variant (current-standard-link-libraries)))))' 2>/dev/null` + fi + if test -f "$MZDYNOBJ"; then + AC_MSG_RESULT($MZDYNOBJ) + else + AC_MSG_RESULT(not found) + MZDYNOBJ="" + fi + fi fi - -if test -z "$MZCBIN"; then - AC_PATH_PROG(MZC, mzc) -fi - -if test -n "$MZSCHEME"; then -AC_MSG_CHECKING(for MzScheme dynext object) -MZDYNOBJ=`$MZSCHEME --mute-banner --version --eval '(begin (require (lib "link.ss" "dynext")) (with-handlers (((lambda args #t) (lambda args #f))) (for-each (lambda (x) (display x) (display " ")) ((current-make-standard-link-libraries)))) (with-handlers (((lambda args #t) (lambda args #f))) (for-each (lambda (x) (display x) (display " ")) (expand-for-link-variant (current-standard-link-libraries)))))'` -AC_MSG_RESULT($MZDYNOBJ) -fi -fi AC_SUBST(MZDYNOBJ) #---------------------------------------------------------------- @@ -2003,7 +2013,7 @@ SKIP_MZSCHEME= -if test -z "$MZC" ; then +if test -z "$MZC" || test -z "$MZDYNOBJ" ; then SKIP_MZSCHEME="1" fi AC_SUBST(SKIP_MZSCHEME) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |