From: <wsf...@us...> - 2008-11-23 19:44:32
|
Revision: 10939 http://swig.svn.sourceforge.net/swig/?rev=10939&view=rev Author: wsfulton Date: 2008-11-23 19:44:29 +0000 (Sun, 23 Nov 2008) Log Message: ----------- gcc-4.3 warning fixes Modified Paths: -------------- trunk/Source/Modules/modula3.cxx trunk/Source/Modules/php.cxx Modified: trunk/Source/Modules/modula3.cxx =================================================================== --- trunk/Source/Modules/modula3.cxx 2008-11-22 12:35:27 UTC (rev 10938) +++ trunk/Source/Modules/modula3.cxx 2008-11-23 19:44:29 UTC (rev 10939) @@ -127,7 +127,7 @@ #include <limits.h> // for INT_MAX #include <ctype.h> -const char usageArgDir[] = "m3wrapargdir typemap expect values: in, out, inout\n"; +#define USAGE_ARG_DIR "m3wrapargdir typemap expect values: in, out, inout\n" class MODULA3:public Language { public: @@ -374,7 +374,7 @@ } else if (Strcmp(dir, "out") == 0) { return false; } else { - printf(usageArgDir); + printf(USAGE_ARG_DIR); return false; } } @@ -386,7 +386,7 @@ } else if ((Strcmp(dir, "out") == 0) || (Strcmp(dir, "inout") == 0)) { return true; } else { - printf(usageArgDir); + printf(USAGE_ARG_DIR); return false; } } Modified: trunk/Source/Modules/php.cxx =================================================================== --- trunk/Source/Modules/php.cxx 2008-11-22 12:35:27 UTC (rev 10938) +++ trunk/Source/Modules/php.cxx 2008-11-23 19:44:29 UTC (rev 10939) @@ -1101,7 +1101,8 @@ case T_LONG: { char *p; errno = 0; - (void) strtol(Char(value), &p, 0); + unsigned int n = strtol(Char(value), &p, 0); + (void) n; if (errno || *p) { Clear(value); Append(value, "?"); @@ -1114,7 +1115,8 @@ case T_ULONG: { char *p; errno = 0; - (void) strtoul(Char(value), &p, 0); + unsigned int n = strtoul(Char(value), &p, 0); + (void) n; if (errno || *p) { Clear(value); Append(value, "?"); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wsf...@us...> - 2008-12-29 23:56:09
|
Revision: 11017 http://swig.svn.sourceforge.net/swig/?rev=11017&view=rev Author: wsfulton Date: 2008-12-29 23:56:03 +0000 (Mon, 29 Dec 2008) Log Message: ----------- add missing language specific preprocessor define where missing for some languages Modified Paths: -------------- trunk/Source/Modules/allegrocl.cxx trunk/Source/Modules/cffi.cxx trunk/Source/Modules/clisp.cxx trunk/Source/Modules/r.cxx trunk/Source/Modules/s-exp.cxx trunk/Source/Modules/uffi.cxx Modified: trunk/Source/Modules/allegrocl.cxx =================================================================== --- trunk/Source/Modules/allegrocl.cxx 2008-12-29 22:56:25 UTC (rev 11016) +++ trunk/Source/Modules/allegrocl.cxx 2008-12-29 23:56:03 UTC (rev 11017) @@ -1520,6 +1520,7 @@ void ALLEGROCL::main(int argc, char *argv[]) { int i; + Preprocessor_define("SWIGALLEGROCL 1", 0); SWIG_library_directory("allegrocl"); SWIG_config_file("allegrocl.swg"); @@ -1576,8 +1577,6 @@ } - Preprocessor_define("SWIGALLEGROCL 1", 0); - allow_overloading(); } Modified: trunk/Source/Modules/cffi.cxx =================================================================== --- trunk/Source/Modules/cffi.cxx 2008-12-29 22:56:25 UTC (rev 11016) +++ trunk/Source/Modules/cffi.cxx 2008-12-29 23:56:03 UTC (rev 11017) @@ -67,6 +67,7 @@ void CFFI::main(int argc, char *argv[]) { int i; + Preprocessor_define("SWIGCFFI 1", 0); SWIG_library_directory("cffi"); SWIG_config_file("cffi.swg"); generate_typedef_flag = 0; Modified: trunk/Source/Modules/clisp.cxx =================================================================== --- trunk/Source/Modules/clisp.cxx 2008-12-29 22:56:25 UTC (rev 11016) +++ trunk/Source/Modules/clisp.cxx 2008-12-29 23:56:03 UTC (rev 11017) @@ -36,6 +36,7 @@ void CLISP::main(int argc, char *argv[]) { int i; + Preprocessor_define("SWIGCLISP 1", 0); SWIG_library_directory("clisp"); SWIG_config_file("clisp.swg"); generate_typedef_flag = 0; Modified: trunk/Source/Modules/r.cxx =================================================================== --- trunk/Source/Modules/r.cxx 2008-12-29 22:56:25 UTC (rev 11016) +++ trunk/Source/Modules/r.cxx 2008-12-29 23:56:03 UTC (rev 11017) @@ -2573,9 +2573,9 @@ void R::main(int argc, char *argv[]) { bool cppcast = true; init(); + Preprocessor_define("SWIGR 1", 0); SWIG_library_directory("r"); SWIG_config_file("r.swg"); - Preprocessor_define("SWIGR 1", 0); debugMode = false; copyStruct = true; memoryProfile = false; Modified: trunk/Source/Modules/s-exp.cxx =================================================================== --- trunk/Source/Modules/s-exp.cxx 2008-12-29 22:56:25 UTC (rev 11016) +++ trunk/Source/Modules/s-exp.cxx 2008-12-29 23:56:03 UTC (rev 11017) @@ -29,6 +29,9 @@ } virtual void main(int argc, char *argv[]) { + // Add a symbol to the parser for conditional compilation + Preprocessor_define("SWIGSEXP 1", 0); + SWIG_typemap_lang("sexp"); for (int iX = 0; iX < argc; iX++) { if (strcmp(argv[iX], "-typemaplang") == 0) { @@ -42,9 +45,6 @@ fputs(usage, stdout); } } - - // Add a symbol to the parser for conditional compilation - Preprocessor_define("SWIGSEXP 1", 0); } DOHHash *print_circle_hash; Modified: trunk/Source/Modules/uffi.cxx =================================================================== --- trunk/Source/Modules/uffi.cxx 2008-12-29 22:56:25 UTC (rev 11016) +++ trunk/Source/Modules/uffi.cxx 2008-12-29 23:56:03 UTC (rev 11017) @@ -180,6 +180,7 @@ void UFFI::main(int argc, char *argv[]) { int i; + Preprocessor_define("SWIGUFFI 1", 0); SWIG_library_directory("uffi"); SWIG_config_file("uffi.swg"); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wsf...@us...> - 2009-06-05 17:19:38
|
Revision: 11246 http://swig.svn.sourceforge.net/swig/?rev=11246&view=rev Author: wsfulton Date: 2009-06-05 17:19:29 +0000 (Fri, 05 Jun 2009) Log Message: ----------- remove extra lookup of directorout typemap Modified Paths: -------------- trunk/Source/Modules/ocaml.cxx trunk/Source/Modules/octave.cxx trunk/Source/Modules/python.cxx trunk/Source/Modules/ruby.cxx Modified: trunk/Source/Modules/ocaml.cxx =================================================================== --- trunk/Source/Modules/ocaml.cxx 2009-06-04 23:25:39 UTC (rev 11245) +++ trunk/Source/Modules/ocaml.cxx 2009-06-05 17:19:29 UTC (rev 11246) @@ -1627,11 +1627,6 @@ Setattr(n, "type", return_type); tm = Swig_typemap_lookup("directorout", n, "c_result", w); Setattr(n, "type", type); - if (tm == 0) { - String *name = NewString("c_result"); - tm = Swig_typemap_search("directorout", return_type, name, NULL); - Delete(name); - } if (tm != 0) { Replaceall(tm, "$input", "swig_result"); /* TODO check this */ Modified: trunk/Source/Modules/octave.cxx =================================================================== --- trunk/Source/Modules/octave.cxx 2009-06-04 23:25:39 UTC (rev 11245) +++ trunk/Source/Modules/octave.cxx 2009-06-05 17:19:29 UTC (rev 11246) @@ -1305,11 +1305,6 @@ Setattr(n, "type", return_type); tm = Swig_typemap_lookup("directorout", n, "result", w); Setattr(n, "type", type); - if (tm == 0) { - String *name = NewString("result"); - tm = Swig_typemap_search("directorout", return_type, name, NULL); - Delete(name); - } if (tm != 0) { char temp[24]; sprintf(temp, "out(%d)", idx); Modified: trunk/Source/Modules/python.cxx =================================================================== --- trunk/Source/Modules/python.cxx 2009-06-04 23:25:39 UTC (rev 11245) +++ trunk/Source/Modules/python.cxx 2009-06-05 17:19:29 UTC (rev 11246) @@ -3949,11 +3949,6 @@ Setattr(n, "type", return_type); tm = Swig_typemap_lookup("directorout", n, "result", w); Setattr(n, "type", type); - if (tm == 0) { - String *name = NewString("result"); - tm = Swig_typemap_search("directorout", return_type, name, NULL); - Delete(name); - } if (tm != 0) { if (outputs > 1) { Printf(w->code, "output = PyTuple_GetItem(result, %d);\n", idx++); Modified: trunk/Source/Modules/ruby.cxx =================================================================== --- trunk/Source/Modules/ruby.cxx 2009-06-04 23:25:39 UTC (rev 11245) +++ trunk/Source/Modules/ruby.cxx 2009-06-05 17:19:29 UTC (rev 11246) @@ -3245,11 +3245,6 @@ Setattr(n, "type", return_type); tm = Swig_typemap_lookup("directorout", n, "result", w); Setattr(n, "type", type); - if (tm == 0) { - String *name = NewString("result"); - tm = Swig_typemap_search("directorout", return_type, name, NULL); - Delete(name); - } if (tm != 0) { if (outputs > 1 && !asvoid ) { Printf(w->code, "output = rb_ary_entry(result, %d);\n", idx++); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wsf...@us...> - 2009-06-25 06:01:13
|
Revision: 11316 http://swig.svn.sourceforge.net/swig/?rev=11316&view=rev Author: wsfulton Date: 2009-06-25 06:01:11 +0000 (Thu, 25 Jun 2009) Log Message: ----------- improve some director warning messages Modified Paths: -------------- trunk/Source/Modules/csharp.cxx trunk/Source/Modules/java.cxx Modified: trunk/Source/Modules/csharp.cxx =================================================================== --- trunk/Source/Modules/csharp.cxx 2009-06-25 03:14:26 UTC (rev 11315) +++ trunk/Source/Modules/csharp.cxx 2009-06-25 06:01:11 UTC (rev 11316) @@ -3332,7 +3332,8 @@ Delete(jretval_decl); } } else { - Swig_warning(WARN_CSHARP_TYPEMAP_CTYPE_UNDEF, input_file, line_number, "No ctype typemap defined for %s\n", SwigType_str(returntype, 0)); + Swig_warning(WARN_CSHARP_TYPEMAP_CTYPE_UNDEF, input_file, line_number, "No ctype typemap defined for %s for use in %s::%s (skipping director method)\n", + SwigType_str(returntype, 0), SwigType_namestr(c_classname), SwigType_namestr(name)); output_director = false; } @@ -3475,11 +3476,13 @@ Swig_warning(WARN_CSHARP_TYPEMAP_CSWTYPE_UNDEF, input_file, line_number, "No cstype typemap defined for %s\n", SwigType_str(pt, 0)); } } else { - Swig_warning(WARN_CSHARP_TYPEMAP_CSDIRECTORIN_UNDEF, input_file, line_number, "No csdirectorin typemap defined for %s\n", SwigType_str(pt, 0)); + Swig_warning(WARN_CSHARP_TYPEMAP_CSDIRECTORIN_UNDEF, input_file, line_number, "No csdirectorin typemap defined for %s for use in %s::%s (skipping director method)\n", + SwigType_str(pt, 0), SwigType_namestr(c_classname), SwigType_namestr(name)); output_director = false; } } else { - Swig_warning(WARN_CSHARP_TYPEMAP_CSTYPE_UNDEF, input_file, line_number, "No imtype typemap defined for %s\n", SwigType_str(pt, 0)); + Swig_warning(WARN_CSHARP_TYPEMAP_CSTYPE_UNDEF, input_file, line_number, "No imtype typemap defined for %s for use in %s::%s (skipping director method)\n", + SwigType_str(pt, 0), SwigType_namestr(c_classname), SwigType_namestr(name)); output_director = false; } @@ -3489,11 +3492,13 @@ } else { if (!desc_tm) { Swig_warning(WARN_CSHARP_TYPEMAP_CSDIRECTORIN_UNDEF, input_file, line_number, - "No or improper directorin typemap defined for %s\n", SwigType_str(c_param_type, 0)); + "No or improper directorin typemap defined for %s for use in %s::%s (skipping director method)\n", + SwigType_str(c_param_type, 0), SwigType_namestr(c_classname), SwigType_namestr(name)); p = nextSibling(p); } else if (!tm) { Swig_warning(WARN_CSHARP_TYPEMAP_CSDIRECTORIN_UNDEF, input_file, line_number, - "No or improper directorin typemap defined for argument %s\n", SwigType_str(pt, 0)); + "No or improper directorin typemap defined for argument %s for use in %s::%s (skipping director method)\n", + SwigType_str(pt, 0), SwigType_namestr(c_classname), SwigType_namestr(name)); p = nextSibling(p); } @@ -3502,7 +3507,8 @@ Delete(tp); } else { - Swig_warning(WARN_CSHARP_TYPEMAP_CTYPE_UNDEF, input_file, line_number, "No ctype typemap defined for %s\n", SwigType_str(pt, 0)); + Swig_warning(WARN_CSHARP_TYPEMAP_CTYPE_UNDEF, input_file, line_number, "No ctype typemap defined for %s for use in %s::%s (skipping director method)\n", + SwigType_str(pt, 0), SwigType_namestr(c_classname), SwigType_namestr(name)); output_director = false; p = nextSibling(p); } @@ -3602,8 +3608,8 @@ Printf(w->code, "%s\n", tm); } else { Swig_warning(WARN_TYPEMAP_DIRECTOROUT_UNDEF, input_file, line_number, - "Unable to use return type %s in director method %s::%s (skipping method).\n", SwigType_str(returntype, 0), - SwigType_namestr(c_classname), SwigType_namestr(name)); + "Unable to use return type %s used in %s::%s (skipping director method)\n", + SwigType_str(returntype, 0), SwigType_namestr(c_classname), SwigType_namestr(name)); output_director = false; } Modified: trunk/Source/Modules/java.cxx =================================================================== --- trunk/Source/Modules/java.cxx 2009-06-25 03:14:26 UTC (rev 11315) +++ trunk/Source/Modules/java.cxx 2009-06-25 06:01:11 UTC (rev 11316) @@ -3387,7 +3387,8 @@ Append(classret_desc, jnidesc_canon); Delete(jnidesc_canon); } else { - Swig_warning(WARN_TYPEMAP_DIRECTORIN_UNDEF, input_file, line_number, "No or improper directorin typemap defined for %s\n", SwigType_str(returntype, 0)); + Swig_warning(WARN_TYPEMAP_DIRECTORIN_UNDEF, input_file, line_number, "No or improper directorin typemap defined for %s for use in %s::%s (skipping director method)\n", + SwigType_str(returntype, 0), SwigType_namestr(c_classname), SwigType_namestr(name)); output_director = false; } @@ -3418,13 +3419,15 @@ Delete(jnidesc_canon); } else { Swig_warning(WARN_TYPEMAP_DIRECTORIN_UNDEF, input_file, line_number, - "No or improper directorin typemap defined for %s\n", SwigType_str(c_ret_type, 0)); + "No or improper directorin typemap defined for %s for use in %s::%s (skipping director method)\n", + SwigType_str(c_ret_type, 0), SwigType_namestr(c_classname), SwigType_namestr(name)); output_director = false; } Delete(tp); } else { - Swig_warning(WARN_JAVA_TYPEMAP_JNI_UNDEF, input_file, line_number, "No jni typemap defined for %s\n", SwigType_str(returntype, 0)); + Swig_warning(WARN_JAVA_TYPEMAP_JNI_UNDEF, input_file, line_number, "No jni typemap defined for %s for use in %s::%s (skipping director method)\n", + SwigType_str(returntype, 0), SwigType_namestr(c_classname), SwigType_namestr(name)); output_director = false; } @@ -3508,8 +3511,8 @@ Delete(tm); } else { Swig_warning(WARN_TYPEMAP_DIRECTORIN_UNDEF, input_file, line_number, - "No or improper directorin typemap for type %s used in director method %s::%s\n", SwigType_str(type, 0), SwigType_namestr(c_classname), - SwigType_namestr(name)); + "No or improper directorin typemap for type %s for use in %s::%s (skipping director method)\n", + SwigType_str(type, 0), SwigType_namestr(c_classname), SwigType_namestr(name)); output_director = false; } @@ -3595,11 +3598,13 @@ Append(classdesc, jni_canon); Delete(jni_canon); } else { - Swig_warning(WARN_JAVA_TYPEMAP_JAVADIRECTORIN_UNDEF, input_file, line_number, "No javadirectorin typemap defined for %s\n", SwigType_str(pt, 0)); + Swig_warning(WARN_JAVA_TYPEMAP_JAVADIRECTORIN_UNDEF, input_file, line_number, "No javadirectorin typemap defined for %s for use in %s::%s (skipping director method)\n", + SwigType_str(pt, 0), SwigType_namestr(c_classname), SwigType_namestr(name)); output_director = false; } } else { - Swig_warning(WARN_JAVA_TYPEMAP_JTYPE_UNDEF, input_file, line_number, "No jtype typemap defined for %s\n", SwigType_str(pt, 0)); + Swig_warning(WARN_JAVA_TYPEMAP_JTYPE_UNDEF, input_file, line_number, "No jtype typemap defined for %s for use in %s::%s (skipping director method)\n", + SwigType_str(pt, 0), SwigType_namestr(c_classname), SwigType_namestr(name)); output_director = false; } @@ -3609,19 +3614,23 @@ } else { if (!desc_tm) { Swig_warning(WARN_JAVA_TYPEMAP_JAVADIRECTORIN_UNDEF, input_file, line_number, - "No or improper directorin typemap defined for %s\n", SwigType_str(c_param_type, 0)); + "No or improper directorin typemap defined for %s for use in %s::%s (skipping director method)\n", + SwigType_str(c_param_type, 0), SwigType_namestr(c_classname), SwigType_namestr(name)); p = nextSibling(p); } else if (!jdesc) { Swig_warning(WARN_JAVA_TYPEMAP_DIRECTORIN_NODESC, input_file, line_number, - "Missing JNI descriptor in directorin typemap defined for %s\n", SwigType_str(c_param_type, 0)); + "Missing JNI descriptor in directorin typemap defined for %s for use in %s::%s (skipping director method)\n", + SwigType_str(c_param_type, 0), SwigType_namestr(c_classname), SwigType_namestr(name)); p = Getattr(p, "tmap:directorin:next"); } else if (!tm) { Swig_warning(WARN_JAVA_TYPEMAP_JAVADIRECTORIN_UNDEF, input_file, line_number, - "No or improper directorin typemap defined for argument %s\n", SwigType_str(pt, 0)); + "No or improper directorin typemap defined for argument %s for use in %s::%s (skipping director method)\n", + SwigType_str(pt, 0), SwigType_namestr(c_classname), SwigType_namestr(name)); p = nextSibling(p); } else if (!cdesc) { Swig_warning(WARN_JAVA_TYPEMAP_DIRECTORIN_NODESC, input_file, line_number, - "Missing JNI descriptor in directorin typemap defined for %s\n", SwigType_str(pt, 0)); + "Missing JNI descriptor in directorin typemap defined for %s for use in %s::%s (skipping director method)\n", + SwigType_str(pt, 0), SwigType_namestr(c_classname), SwigType_namestr(name)); p = Getattr(p, "tmap:directorin:next"); } @@ -3630,7 +3639,8 @@ Delete(tp); } else { - Swig_warning(WARN_JAVA_TYPEMAP_JNI_UNDEF, input_file, line_number, "No jni typemap defined for %s\n", SwigType_str(pt, 0)); + Swig_warning(WARN_JAVA_TYPEMAP_JNI_UNDEF, input_file, line_number, "No jni typemap defined for %s for use in %s::%s (skipping director method)\n", + SwigType_str(pt, 0), SwigType_namestr(c_classname), SwigType_namestr(name)); output_director = false; p = nextSibling(p); } @@ -3742,8 +3752,8 @@ Printf(w->code, "%s\n", tm); } else { Swig_warning(WARN_TYPEMAP_DIRECTOROUT_UNDEF, input_file, line_number, - "Unable to use return type %s in director method %s::%s (skipping method).\n", SwigType_str(returntype, 0), - SwigType_namestr(c_classname), SwigType_namestr(name)); + "Unable to use return type %s used in %s::%s (skipping director method)\n", + SwigType_str(returntype, 0), SwigType_namestr(c_classname), SwigType_namestr(name)); output_director = false; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wsf...@us...> - 2009-07-29 20:52:39
|
Revision: 11471 http://swig.svn.sourceforge.net/swig/?rev=11471&view=rev Author: wsfulton Date: 2009-07-29 20:52:29 +0000 (Wed, 29 Jul 2009) Log Message: ----------- consistent terminology for multi-argument typemaps Modified Paths: -------------- trunk/Source/Modules/allegrocl.cxx trunk/Source/Modules/emit.cxx Modified: trunk/Source/Modules/allegrocl.cxx =================================================================== --- trunk/Source/Modules/allegrocl.cxx 2009-07-29 20:50:39 UTC (rev 11470) +++ trunk/Source/Modules/allegrocl.cxx 2009-07-29 20:52:29 UTC (rev 11471) @@ -2006,7 +2006,7 @@ * emit_num_lin_arguments() * * Calculate the total number of arguments. This function is safe for use - * with multi-valued typemaps which may change the number of arguments in + * with multi-argument typemaps which may change the number of arguments in * strange ways. * ----------------------------------------------------------------------------- */ Modified: trunk/Source/Modules/emit.cxx =================================================================== --- trunk/Source/Modules/emit.cxx 2009-07-29 20:50:39 UTC (rev 11470) +++ trunk/Source/Modules/emit.cxx 2009-07-29 20:52:29 UTC (rev 11471) @@ -200,7 +200,7 @@ * emit_num_arguments() * * Calculate the total number of arguments. This function is safe for use - * with multi-valued typemaps which may change the number of arguments in + * with multi-argument typemaps which may change the number of arguments in * strange ways. * ----------------------------------------------------------------------------- */ @@ -232,7 +232,7 @@ * emit_num_required() * * Computes the number of required arguments. This function is safe for - * use with multi-valued typemaps and knows how to skip over everything + * use with multi-argument typemaps and knows how to skip over everything * properly. Note that parameters with default values are counted unless * the compact default args option is on. * ----------------------------------------------------------------------------- */ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wsf...@us...> - 2010-02-06 13:42:51
|
Revision: 11843 http://swig.svn.sourceforge.net/swig/?rev=11843&view=rev Author: wsfulton Date: 2010-02-06 13:42:45 +0000 (Sat, 06 Feb 2010) Log Message: ----------- minor code tidy up Modified Paths: -------------- trunk/Source/Modules/main.cxx trunk/Source/Modules/swigmod.h Modified: trunk/Source/Modules/main.cxx =================================================================== --- trunk/Source/Modules/main.cxx 2010-02-06 01:46:58 UTC (rev 11842) +++ trunk/Source/Modules/main.cxx 2010-02-06 13:42:45 UTC (rev 11843) @@ -182,14 +182,13 @@ static int depend_only = 0; static int memory_debug = 0; static int allkw = 0; -static DOH *libfiles = 0; static DOH *cpps = 0; static String *dependencies_file = 0; -static File *f_dependencies_file = 0; static String *dependencies_target = 0; static int external_runtime = 0; static String *external_runtime_name = 0; enum { STAGE1=1, STAGE2=2, STAGE3=4, STAGE4=8, STAGEOVERFLOW=16 }; +static List *libfiles = 0; static List *all_output_files = 0; // ----------------------------------------------------------------------------- @@ -836,7 +835,6 @@ int SWIG_main(int argc, char *argv[], Language *l) { char *c; - extern void Swig_print_xml(Node *obj, String *filename); /* Initialize the SWIG core */ Swig_init(); @@ -1045,6 +1043,7 @@ if (depend) { if (!no_cpp) { String *outfile; + File *f_dependencies_file = 0; char *basename = Swig_file_basename(outcurrentdir ? Swig_file_filename(input_file): Char(input_file)); if (!outfile_name) { @@ -1244,7 +1243,7 @@ if (memory_debug) DohMemoryDebug(); - char *outfiles = getenv("CCACHE_OUTFILES"); + const char *outfiles = getenv("CCACHE_OUTFILES"); if (outfiles) { File *f_outfiles = NewFile(outfiles, "w", 0); if (!f_outfiles) { Modified: trunk/Source/Modules/swigmod.h =================================================================== --- trunk/Source/Modules/swigmod.h 2010-02-06 01:46:58 UTC (rev 11842) +++ trunk/Source/Modules/swigmod.h 2010-02-06 13:42:45 UTC (rev 11843) @@ -321,6 +321,7 @@ void SWIG_config_file(const_String_or_char_ptr ); const String *SWIG_output_directory(); void SWIG_config_cppext(const char *ext); +void Swig_print_xml(Node *obj, String *filename); /* get the list of generated files */ List *SWIG_output_files(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wsf...@us...> - 2010-02-11 21:59:23
|
Revision: 11853 http://swig.svn.sourceforge.net/swig/?rev=11853&view=rev Author: wsfulton Date: 2010-02-11 21:59:16 +0000 (Thu, 11 Feb 2010) Log Message: ----------- remove some unnecessary casts Modified Paths: -------------- trunk/Source/Modules/csharp.cxx trunk/Source/Modules/java.cxx trunk/Source/Modules/modula3.cxx trunk/Source/Modules/pike.cxx trunk/Source/Modules/ruby.cxx Modified: trunk/Source/Modules/csharp.cxx =================================================================== --- trunk/Source/Modules/csharp.cxx 2010-02-11 21:27:21 UTC (rev 11852) +++ trunk/Source/Modules/csharp.cxx 2010-02-11 21:59:16 UTC (rev 11853) @@ -379,10 +379,10 @@ Printf(f_runtime, "\n"); - Swig_name_register((char *) "wrapper", (char *) "CSharp_%f"); + Swig_name_register("wrapper", "CSharp_%f"); if (old_variable_names) { - Swig_name_register((char *) "set", (char *) "set_%v"); - Swig_name_register((char *) "get", (char *) "get_%v"); + Swig_name_register("set", "set_%v"); + Swig_name_register("get", "get_%v"); } Printf(f_wrappers, "\n#ifdef __cplusplus\n"); Modified: trunk/Source/Modules/java.cxx =================================================================== --- trunk/Source/Modules/java.cxx 2010-02-11 21:27:21 UTC (rev 11852) +++ trunk/Source/Modules/java.cxx 2010-02-11 21:59:16 UTC (rev 11853) @@ -402,10 +402,10 @@ Printf(wrapper_name, "Java_%s%s_%%f", Char(jnipackage), jniname); Delete(jniname); - Swig_name_register((char *) "wrapper", Char(wrapper_name)); + Swig_name_register("wrapper", Char(wrapper_name)); if (old_variable_names) { - Swig_name_register((char *) "set", (char *) "set_%v"); - Swig_name_register((char *) "get", (char *) "get_%v"); + Swig_name_register("set", "set_%v"); + Swig_name_register("get", "get_%v"); } Delete(wrapper_name); Modified: trunk/Source/Modules/modula3.cxx =================================================================== --- trunk/Source/Modules/modula3.cxx 2010-02-11 21:27:21 UTC (rev 11852) +++ trunk/Source/Modules/modula3.cxx 2010-02-11 21:59:16 UTC (rev 11853) @@ -966,10 +966,10 @@ Printf(f_runtime, "#define SWIGMODULA3\n"); Printf(f_runtime, "\n"); - Swig_name_register((char *) "wrapper", (char *) "Modula3_%f"); + Swig_name_register("wrapper", "Modula3_%f"); if (old_variable_names) { - Swig_name_register((char *) "set", (char *) "set_%v"); - Swig_name_register((char *) "get", (char *) "get_%v"); + Swig_name_register("set", "set_%v"); + Swig_name_register("get", "get_%v"); } Printf(f_wrappers, "\n#ifdef __cplusplus\n"); Modified: trunk/Source/Modules/pike.cxx =================================================================== --- trunk/Source/Modules/pike.cxx 2010-02-11 21:27:21 UTC (rev 11852) +++ trunk/Source/Modules/pike.cxx 2010-02-11 21:59:16 UTC (rev 11853) @@ -762,7 +762,7 @@ /* Create a function to set the values of the (mutable) variables */ if (need_setter) { Wrapper *wrapper = NewWrapper(); - String *setter = Swig_name_member(getClassPrefix(), (char *) "`->="); + String *setter = Swig_name_member(getClassPrefix(), "`->="); String *wname = Swig_name_wrapper(setter); Printv(wrapper->def, "static void ", wname, "(INT32 args) {", NIL); Printf(wrapper->locals, "char *name = (char *) STR0(Pike_sp[0-args].u.string);\n"); @@ -801,7 +801,7 @@ /* Create a function to get the values of the (mutable) variables */ Wrapper *wrapper = NewWrapper(); - String *getter = Swig_name_member(getClassPrefix(), (char *) "`->"); + String *getter = Swig_name_member(getClassPrefix(), "`->"); String *wname = Swig_name_wrapper(getter); Printv(wrapper->def, "static void ", wname, "(INT32 args) {", NIL); Printf(wrapper->locals, "char *name = (char *) STR0(Pike_sp[0-args].u.string);\n"); Modified: trunk/Source/Modules/ruby.cxx =================================================================== --- trunk/Source/Modules/ruby.cxx 2010-02-11 21:27:21 UTC (rev 11852) +++ trunk/Source/Modules/ruby.cxx 2010-02-11 21:59:16 UTC (rev 11853) @@ -2574,7 +2574,7 @@ /* First wrap the allocate method */ current = CONSTRUCTOR_ALLOCATE; - Swig_name_register((const_String_or_char_ptr ) "construct", (const_String_or_char_ptr ) "%c_allocate"); + Swig_name_register("construct", "%c_allocate"); Language::constructorHandler(n); @@ -2609,7 +2609,7 @@ Delete(docs); current = CONSTRUCTOR_INITIALIZE; - Swig_name_register((const_String_or_char_ptr ) "construct", (const_String_or_char_ptr ) "new_%c"); + Swig_name_register("construct", "new_%c"); Language::constructorHandler(n); /* Restore original parameter list */ @@ -2631,7 +2631,7 @@ /* First wrap the allocate method */ current = CONSTRUCTOR_ALLOCATE; - Swig_name_register((const_String_or_char_ptr ) "construct", (const_String_or_char_ptr ) "%c_allocate"); + Swig_name_register("construct", "%c_allocate"); return Language::copyconstructorHandler(n); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wsf...@us...> - 2010-03-10 07:50:39
|
Revision: 11933 http://swig.svn.sourceforge.net/swig/?rev=11933&view=rev Author: wsfulton Date: 2010-03-10 07:50:32 +0000 (Wed, 10 Mar 2010) Log Message: ----------- Slightly efficiency improvements for packages/namespaces/ Modified Paths: -------------- trunk/Source/Modules/csharp.cxx trunk/Source/Modules/java.cxx Modified: trunk/Source/Modules/csharp.cxx =================================================================== --- trunk/Source/Modules/csharp.cxx 2010-03-10 07:30:22 UTC (rev 11932) +++ trunk/Source/Modules/csharp.cxx 2010-03-10 07:50:32 UTC (rev 11933) @@ -181,7 +181,7 @@ String *nspace = Getattr(n, "sym:nspace"); String *symname = Getattr(n, "sym:name"); if (nspace) { - if (Len(namespce) > 0) + if (namespce) proxyname = NewStringf("%s.%s.%s", namespce, nspace, symname); else proxyname = NewStringf("%s.%s", nspace, symname); @@ -239,6 +239,10 @@ if (argv[i + 1]) { namespce = NewString(""); Printf(namespce, argv[i + 1]); + if (Len(namespce) == 0) { + Delete(namespce); + namespce = 0; + } Swig_mark_arg(i); Swig_mark_arg(i + 1); i++; @@ -378,8 +382,6 @@ dmethods_table = NewHash(); n_dmethods = 0; n_directors = 0; - if (!namespce) - namespce = NewString(""); if (!dllimport) dllimport = Copy(module_class_name); @@ -439,7 +441,7 @@ // Start writing out the intermediary class file emitBanner(f_im); - addOpenNamespace(namespce, 0, f_im); + addOpenNamespace(0, f_im); if (imclass_imports) Printf(f_im, "%s\n", imclass_imports); @@ -463,7 +465,7 @@ // Finish off the class Printf(f_im, "}\n"); - addCloseNamespace(namespce, 0, f_im); + addCloseNamespace(0, f_im); Close(f_im); } @@ -483,7 +485,7 @@ // Start writing out the module class file emitBanner(f_module); - addOpenNamespace(namespce, 0, f_module); + addOpenNamespace(0, f_module); if (module_imports) Printf(f_module, "%s\n", module_imports); @@ -515,7 +517,7 @@ // Finish off the class Printf(f_module, "}\n"); - addCloseNamespace(namespce, 0, f_module); + addCloseNamespace(0, f_module); Close(f_module); } @@ -1134,7 +1136,7 @@ if (!nspace) { full_imclass_name = NewStringf("%s", imclass_name); } else { - if (Len(namespce) > 0) { + if (namespce) { full_imclass_name = NewStringf("%s.%s", namespce, imclass_name); } else { full_imclass_name = NewStringf("%s", imclass_name); @@ -1214,12 +1216,12 @@ // Start writing out the enum file emitBanner(f_enum); - addOpenNamespace(namespce, nspace, f_enum); + addOpenNamespace(nspace, f_enum); Printv(f_enum, typemapLookup(n, "csimports", typemap_lookup_type, WARN_NONE), // Import statements "\n", enum_code, "\n", NIL); - addCloseNamespace(namespce, nspace, f_enum); + addCloseNamespace(nspace, f_enum); Close(f_enum); Delete(output_directory); } @@ -1820,7 +1822,7 @@ SWIG_exit(EXIT_FAILURE); } } else { - if (Len(namespce) > 0) { + if (namespce) { full_proxy_class_name = NewStringf("%s.%s.%s", namespce, nspace, proxy_class_name); full_imclass_name = NewStringf("%s.%s", namespce, imclass_name); } else { @@ -1846,7 +1848,7 @@ // Start writing out the proxy class file emitBanner(f_proxy); - addOpenNamespace(namespce, nspace, f_proxy); + addOpenNamespace(nspace, f_proxy); Clear(proxy_class_def); Clear(proxy_class_code); @@ -1878,7 +1880,7 @@ Printv(f_proxy, proxy_class_constants_code, NIL); Printf(f_proxy, "}\n"); - addCloseNamespace(namespce, nspace, f_proxy); + addCloseNamespace(nspace, f_proxy); Close(f_proxy); f_proxy = NULL; @@ -2959,7 +2961,7 @@ // global enum or enum in a namespace String *nspace = Getattr(n, "sym:nspace"); if (nspace) { - if (Len(namespce) > 0) + if (namespce) enumname = NewStringf("%s.%s.%s", namespce, nspace, symname); else enumname = NewStringf("%s.%s", nspace, symname); @@ -3111,7 +3113,7 @@ // Start writing out the type wrapper class file emitBanner(f_swigtype); - addOpenNamespace(namespce, 0, f_swigtype); + addOpenNamespace(0, f_swigtype); // Pure C# baseclass and interfaces const String *pure_baseclass = typemapLookup(n, "csbase", type, WARN_NONE); @@ -3140,7 +3142,7 @@ Printv(f_swigtype, swigtype, NIL); - addCloseNamespace(namespce, 0, f_swigtype); + addCloseNamespace(0, f_swigtype); Close(f_swigtype); Delete(swigtype); @@ -3215,12 +3217,12 @@ * addOpenNamespace() * ----------------------------------------------------------------------------- */ - void addOpenNamespace(const String *namspace, const String *nspace, File *file) { - if (namspace) { - if (Len(namspace) > 0 || nspace) { + void addOpenNamespace(const String *nspace, File *file) { + if (namespce) { + if (namespce || nspace) { Printf(file, "namespace "); - if (Len(namspace) > 0) - Printv(file, namspace, nspace ? "." : "", NIL); + if (namespce) + Printv(file, namespce, nspace ? "." : "", NIL); if (nspace) Printv(file, nspace, NIL); Printf(file, " {\n"); @@ -3232,9 +3234,9 @@ * addCloseNamespace() * ----------------------------------------------------------------------------- */ - void addCloseNamespace(const String *namspace, const String *nspace, File *file) { - if (namspace) - if (Len(namspace) > 0 || nspace) + void addCloseNamespace(const String *nspace, File *file) { + if (namespce) + if (namespce || nspace) Printf(file, "\n}\n"); } @@ -3303,8 +3305,7 @@ /*---------------------------------------------------------------------- * emitDirectorExtraMethods() * - * This is where the director connect method is - * generated. + * This is where the director connect method is generated. *--------------------------------------------------------------------*/ void emitDirectorExtraMethods(Node *n) { if (!Swig_directorclass(n)) Modified: trunk/Source/Modules/java.cxx =================================================================== --- trunk/Source/Modules/java.cxx 2010-03-10 07:30:22 UTC (rev 11932) +++ trunk/Source/Modules/java.cxx 2010-03-10 07:50:32 UTC (rev 11933) @@ -176,7 +176,7 @@ String *nspace = Getattr(n, "sym:nspace"); String *symname = Getattr(n, "sym:name"); if (nspace) { - if (Len(package) > 0) + if (package) proxyname = NewStringf("%s.%s.%s", package, nspace, symname); else proxyname = NewStringf("%s.%s", nspace, symname); @@ -234,6 +234,10 @@ if (argv[i + 1]) { package = NewString(""); Printf(package, argv[i + 1]); + if (Len(package) == 0) { + Delete(package); + package = 0; + } Swig_mark_arg(i); Swig_mark_arg(i + 1); i++; @@ -390,8 +394,6 @@ dmethods_table = NewHash(); n_dmethods = 0; n_directors = 0; - if (!package) - package = NewString(""); jnipackage = NewString(""); package_path = NewString(""); @@ -420,7 +422,7 @@ String *wrapper_name = NewString(""); - if (Len(package)) { + if (package) { String *jniname = makeValidJniName(package); Printv(jnipackage, jniname, NIL); Delete(jniname); @@ -467,7 +469,7 @@ // Start writing out the intermediary class file emitBanner(f_im); - if (Len(package) > 0) + if (package) Printf(f_im, "package %s;\n", package); if (imclass_imports) @@ -518,7 +520,7 @@ // Start writing out the module class file emitBanner(f_module); - if (Len(package) > 0) + if (package) Printf(f_module, "package %s;\n", package); if (module_imports) @@ -570,7 +572,7 @@ // Start writing out the Java constants interface file emitBanner(f_module); - if (Len(package) > 0) + if (package) Printf(f_module, "package %s;\n", package); if (module_imports) @@ -1195,7 +1197,7 @@ if (!nspace) { full_imclass_name = NewStringf("%s", imclass_name); } else { - if (Len(package) > 0) { + if (package) { full_imclass_name = NewStringf("%s.%s", package, imclass_name); } else { full_imclass_name = NewStringf("%s", imclass_name); @@ -1277,9 +1279,9 @@ // Start writing out the enum file emitBanner(f_enum); - if (Len(package) > 0 || nspace) { + if (package || nspace) { Printf(f_enum, "package "); - if (Len(package) > 0) + if (package) Printv(f_enum, package, nspace ? "." : "", NIL); if (nspace) Printv(f_enum, nspace, NIL); @@ -1828,7 +1830,7 @@ SWIG_exit(EXIT_FAILURE); } } else { - if (Len(package) > 0) { + if (package) { full_proxy_class_name = NewStringf("%s.%s.%s", package, nspace, proxy_class_name); full_imclass_name = NewStringf("%s.%s", package, imclass_name); } else { @@ -1856,9 +1858,9 @@ // Start writing out the proxy class file emitBanner(f_proxy); - if (Len(package) > 0 || nspace) { + if (package || nspace) { Printf(f_proxy, "package "); - if (Len(package) > 0) + if (package) Printv(f_proxy, package, nspace ? "." : "", NIL); if (nspace) Printv(f_proxy, nspace, NIL); @@ -2807,7 +2809,7 @@ // global enum or enum in a namespace String *nspace = Getattr(n, "sym:nspace"); if (nspace) { - if (Len(package) > 0) + if (package) enumname = NewStringf("%s.%s.%s", package, nspace, symname); else enumname = NewStringf("%s.%s", nspace, symname); @@ -2963,7 +2965,7 @@ // Start writing out the type wrapper class file emitBanner(f_swigtype); - if (Len(package) > 0) + if (package) Printf(f_swigtype, "package %s;\n", package); // Pure Java baseclass and interfaces @@ -3274,8 +3276,7 @@ /*---------------------------------------------------------------------- * emitDirectorExtraMethods() * - * This is where the $javaclassname_director_connect is - * generated. + * This is where the director connect method is generated. *--------------------------------------------------------------------*/ void emitDirectorExtraMethods(Node *n) { if (!Swig_directorclass(n)) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wsf...@us...> - 2010-03-10 08:07:45
|
Revision: 11934 http://swig.svn.sourceforge.net/swig/?rev=11934&view=rev Author: wsfulton Date: 2010-03-10 08:07:39 +0000 (Wed, 10 Mar 2010) Log Message: ----------- remove duplicate special variable replacement Modified Paths: -------------- trunk/Source/Modules/csharp.cxx trunk/Source/Modules/java.cxx Modified: trunk/Source/Modules/csharp.cxx =================================================================== --- trunk/Source/Modules/csharp.cxx 2010-03-10 07:50:32 UTC (rev 11933) +++ trunk/Source/Modules/csharp.cxx 2010-03-10 08:07:39 UTC (rev 11934) @@ -1755,28 +1755,10 @@ Delete(attributes); Delete(destruct); - String *csclazzname = Swig_name_member(getNSpace(), proxy_class_name, ""); // mangled full proxy class name - // Emit extra user code Printv(proxy_class_def, typemapLookup(n, "cscode", typemap_lookup_type, WARN_NONE), // extra C# code "\n", NIL); - // Substitute various strings into the above template - Replaceall(proxy_class_code, "$csclassname", proxy_class_name); - Replaceall(proxy_class_def, "$csclassname", proxy_class_name); - - Replaceall(proxy_class_def, "$module", module_class_name); - Replaceall(proxy_class_code, "$module", module_class_name); - - Replaceall(proxy_class_def, "$imclassname", full_imclass_name); - Replaceall(proxy_class_code, "$imclassname", full_imclass_name); - - Replaceall(proxy_class_def, "$dllimport", dllimport); - Replaceall(proxy_class_code, "$dllimport", dllimport); - - Replaceall(proxy_class_def, "$csclazzname", csclazzname); - Replaceall(proxy_class_code, "$csclazzname", csclazzname); - // Add code to do C++ casting to base class (only for classes in an inheritance hierarchy) if (derived) { String *upcast_method = Swig_name_member(getNSpace(), proxy_class_name, "SWIGUpcast"); @@ -1794,7 +1776,6 @@ Delete(wname); Delete(upcast_method); } - Delete(csclazzname); Delete(baseclass); } @@ -1863,12 +1844,24 @@ emitProxyClassDefAndCPPCasts(n); + String *csclazzname = Swig_name_member(getNSpace(), proxy_class_name, ""); // mangled full proxy class name + + Replaceall(proxy_class_def, "$csclassname", proxy_class_name); + Replaceall(proxy_class_code, "$csclassname", proxy_class_name); + Replaceall(proxy_class_constants_code, "$csclassname", proxy_class_name); + + Replaceall(proxy_class_def, "$csclazzname", csclazzname); + Replaceall(proxy_class_code, "$csclazzname", csclazzname); + Replaceall(proxy_class_constants_code, "$csclazzname", csclazzname); + Replaceall(proxy_class_def, "$module", module_class_name); Replaceall(proxy_class_code, "$module", module_class_name); Replaceall(proxy_class_constants_code, "$module", module_class_name); + Replaceall(proxy_class_def, "$imclassname", full_imclass_name); Replaceall(proxy_class_code, "$imclassname", full_imclass_name); Replaceall(proxy_class_constants_code, "$imclassname", full_imclass_name); + Replaceall(proxy_class_def, "$dllimport", dllimport); Replaceall(proxy_class_code, "$dllimport", dllimport); Replaceall(proxy_class_constants_code, "$dllimport", dllimport); @@ -1917,6 +1910,7 @@ emitDirectorExtraMethods(n); + Delete(csclazzname); Delete(proxy_class_name); proxy_class_name = NULL; Delete(full_proxy_class_name); Modified: trunk/Source/Modules/java.cxx =================================================================== --- trunk/Source/Modules/java.cxx 2010-03-10 07:50:32 UTC (rev 11933) +++ trunk/Source/Modules/java.cxx 2010-03-10 08:07:39 UTC (rev 11934) @@ -1764,25 +1764,10 @@ Delete(attributes); Delete(destruct); - String *javaclazzname = Swig_name_member(getNSpace(), proxy_class_name, ""); // mangled full proxy class name - // Emit extra user code Printv(proxy_class_def, typemapLookup(n, "javacode", typemap_lookup_type, WARN_NONE), // extra Java code "\n", NIL); - // Substitute various strings into the above template - Replaceall(proxy_class_code, "$javaclassname", proxy_class_name); - Replaceall(proxy_class_def, "$javaclassname", proxy_class_name); - - Replaceall(proxy_class_def, "$module", module_class_name); - Replaceall(proxy_class_code, "$module", module_class_name); - - Replaceall(proxy_class_def, "$imclassname", full_imclass_name); - Replaceall(proxy_class_code, "$imclassname", full_imclass_name); - - Replaceall(proxy_class_def, "$javaclazzname", javaclazzname); - Replaceall(proxy_class_code, "$javaclazzname", javaclazzname); - // Add code to do C++ casting to base class (only for classes in an inheritance hierarchy) if (derived) { String *upcast_method = Swig_name_member(getNSpace(), proxy_class_name, "SWIGUpcast"); @@ -1802,7 +1787,6 @@ Delete(jniname); Delete(upcast_method); } - Delete(javaclazzname); Delete(baseclass); } @@ -1882,12 +1866,24 @@ emitProxyClassDefAndCPPCasts(n); + String *javaclazzname = Swig_name_member(getNSpace(), proxy_class_name, ""); // mangled full proxy class name + + Replaceall(proxy_class_def, "$javaclassname", proxy_class_name); + Replaceall(proxy_class_code, "$javaclassname", proxy_class_name); + Replaceall(proxy_class_constants_code, "$javaclassname", proxy_class_name); + + Replaceall(proxy_class_def, "$javaclazzname", javaclazzname); + Replaceall(proxy_class_code, "$javaclazzname", javaclazzname); + Replaceall(proxy_class_constants_code, "$javaclazzname", javaclazzname); + Replaceall(proxy_class_def, "$module", module_class_name); Replaceall(proxy_class_code, "$module", module_class_name); Replaceall(proxy_class_constants_code, "$module", module_class_name); + Replaceall(proxy_class_def, "$imclassname", full_imclass_name); Replaceall(proxy_class_code, "$imclassname", full_imclass_name); Replaceall(proxy_class_constants_code, "$imclassname", full_imclass_name); + Printv(f_proxy, proxy_class_def, proxy_class_code, NIL); // Write out all the constants @@ -1933,6 +1929,7 @@ emitDirectorExtraMethods(n); + Delete(javaclazzname); Delete(proxy_class_name); proxy_class_name = NULL; Delete(full_proxy_class_name); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wsf...@us...> - 2010-03-10 22:00:21
|
Revision: 11936 http://swig.svn.sourceforge.net/swig/?rev=11936&view=rev Author: wsfulton Date: 2010-03-10 22:00:14 +0000 (Wed, 10 Mar 2010) Log Message: ----------- add some missing nspace support Modified Paths: -------------- trunk/Source/Modules/csharp.cxx trunk/Source/Modules/java.cxx trunk/Source/Modules/modula3.cxx trunk/Source/Modules/ocaml.cxx trunk/Source/Modules/pike.cxx trunk/Source/Modules/ruby.cxx Modified: trunk/Source/Modules/csharp.cxx =================================================================== --- trunk/Source/Modules/csharp.cxx 2010-03-10 19:38:24 UTC (rev 11935) +++ trunk/Source/Modules/csharp.cxx 2010-03-10 22:00:14 UTC (rev 11936) @@ -411,8 +411,8 @@ Swig_name_register("wrapper", "CSharp_%f"); if (old_variable_names) { - Swig_name_register("set", "set_%v"); - Swig_name_register("get", "get_%v"); + Swig_name_register("set", "set_%n%v"); + Swig_name_register("get", "get_%n%v"); } Printf(f_wrappers, "\n#ifdef __cplusplus\n"); Modified: trunk/Source/Modules/java.cxx =================================================================== --- trunk/Source/Modules/java.cxx 2010-03-10 19:38:24 UTC (rev 11935) +++ trunk/Source/Modules/java.cxx 2010-03-10 22:00:14 UTC (rev 11936) @@ -437,8 +437,8 @@ Swig_name_register("wrapper", Char(wrapper_name)); if (old_variable_names) { - Swig_name_register("set", "set_%v"); - Swig_name_register("get", "get_%v"); + Swig_name_register("set", "set_%n%v"); + Swig_name_register("get", "get_%n%v"); } Delete(wrapper_name); Modified: trunk/Source/Modules/modula3.cxx =================================================================== --- trunk/Source/Modules/modula3.cxx 2010-03-10 19:38:24 UTC (rev 11935) +++ trunk/Source/Modules/modula3.cxx 2010-03-10 22:00:14 UTC (rev 11936) @@ -972,8 +972,8 @@ Swig_name_register("wrapper", "Modula3_%f"); if (old_variable_names) { - Swig_name_register("set", "set_%v"); - Swig_name_register("get", "get_%v"); + Swig_name_register("set", "set_%n%v"); + Swig_name_register("get", "get_%n%v"); } Printf(f_wrappers, "\n#ifdef __cplusplus\n"); Modified: trunk/Source/Modules/ocaml.cxx =================================================================== --- trunk/Source/Modules/ocaml.cxx 2010-03-10 19:38:24 UTC (rev 11935) +++ trunk/Source/Modules/ocaml.cxx 2010-03-10 22:00:14 UTC (rev 11936) @@ -265,8 +265,8 @@ Swig_register_filebyname("class_ctors", f_class_ctors); if (old_variable_names) { - Swig_name_register("set", "%v__set__"); - Swig_name_register("get", "%v__get__"); + Swig_name_register("set", "%n%v__set__"); + Swig_name_register("get", "%n%v__get__"); } Swig_banner(f_begin); Modified: trunk/Source/Modules/pike.cxx =================================================================== --- trunk/Source/Modules/pike.cxx 2010-03-10 19:38:24 UTC (rev 11935) +++ trunk/Source/Modules/pike.cxx 2010-03-10 22:00:14 UTC (rev 11936) @@ -159,8 +159,8 @@ Printf(f_header, "#define SWIG_name \"%s\"\n\n", module); /* Change naming scheme for constructors and destructors */ - Swig_name_register("construct", "%c_create"); - Swig_name_register("destroy", "%c_destroy"); + Swig_name_register("construct", "%n%c_create"); + Swig_name_register("destroy", "%n%c_destroy"); /* Current wrap type */ current = NO_CPP; Modified: trunk/Source/Modules/ruby.cxx =================================================================== --- trunk/Source/Modules/ruby.cxx 2010-03-10 19:38:24 UTC (rev 11935) +++ trunk/Source/Modules/ruby.cxx 2010-03-10 22:00:14 UTC (rev 11936) @@ -2578,7 +2578,7 @@ /* First wrap the allocate method */ current = CONSTRUCTOR_ALLOCATE; - Swig_name_register("construct", "%c_allocate"); + Swig_name_register("construct", "%n%c_allocate"); Language::constructorHandler(n); @@ -2613,7 +2613,7 @@ Delete(docs); current = CONSTRUCTOR_INITIALIZE; - Swig_name_register("construct", "new_%c"); + Swig_name_register("construct", "new_%n%c"); Language::constructorHandler(n); /* Restore original parameter list */ @@ -2635,7 +2635,7 @@ /* First wrap the allocate method */ current = CONSTRUCTOR_ALLOCATE; - Swig_name_register("construct", "%c_allocate"); + Swig_name_register("construct", "%n%n%c_allocate"); return Language::copyconstructorHandler(n); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wsf...@us...> - 2010-03-13 23:39:52
|
Revision: 11947 http://swig.svn.sourceforge.net/swig/?rev=11947&view=rev Author: wsfulton Date: 2010-03-13 23:39:46 +0000 (Sat, 13 Mar 2010) Log Message: ----------- Java/C# constants fix after last nspace commit Modified Paths: -------------- trunk/Source/Modules/csharp.cxx trunk/Source/Modules/java.cxx Modified: trunk/Source/Modules/csharp.cxx =================================================================== --- trunk/Source/Modules/csharp.cxx 2010-03-13 23:24:15 UTC (rev 11946) +++ trunk/Source/Modules/csharp.cxx 2010-03-13 23:39:46 UTC (rev 11947) @@ -1477,7 +1477,7 @@ Printf(constants_code, "(%s)%s.%s();\n", return_type, full_imclass_name, Swig_name_get(getNSpace(), symname)); } else { // This handles function pointers using the %constant directive - Printf(constants_code, "new %s(%s.%s(), false);\n", return_type, full_imclass_name, Swig_name_get(getNSpace(), symname)); + Printf(constants_code, "new %s(%s.%s(), false);\n", return_type, full_imclass_name ? full_imclass_name : imclass_name, Swig_name_get(getNSpace(), symname)); } } else { Printf(constants_code, "%s.%s();\n", full_imclass_name ? full_imclass_name : imclass_name, Swig_name_get(getNSpace(), symname)); Modified: trunk/Source/Modules/java.cxx =================================================================== --- trunk/Source/Modules/java.cxx 2010-03-13 23:24:15 UTC (rev 11946) +++ trunk/Source/Modules/java.cxx 2010-03-13 23:39:46 UTC (rev 11947) @@ -1522,7 +1522,7 @@ Printf(constants_code, "%s.swigToEnum(%s.%s());\n", return_type, full_imclass_name, Swig_name_get(getNSpace(), symname)); } else { // This handles function pointers using the %constant directive - Printf(constants_code, "new %s(%s.%s(), false);\n", return_type, full_imclass_name, Swig_name_get(getNSpace(), symname)); + Printf(constants_code, "new %s(%s.%s(), false);\n", return_type, full_imclass_name ? full_imclass_name : imclass_name, Swig_name_get(getNSpace(), symname)); } } else { Printf(constants_code, "%s.%s();\n", full_imclass_name ? full_imclass_name : imclass_name, Swig_name_get(getNSpace(), symname)); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wsf...@us...> - 2010-05-28 22:24:17
|
Revision: 12064 http://swig.svn.sourceforge.net/swig/?rev=12064&view=rev Author: wsfulton Date: 2010-05-28 22:24:11 +0000 (Fri, 28 May 2010) Log Message: ----------- Fix constants wrapper warnings for visual c++ Modified Paths: -------------- trunk/Source/Modules/csharp.cxx trunk/Source/Modules/java.cxx trunk/Source/Modules/modula3.cxx Modified: trunk/Source/Modules/csharp.cxx =================================================================== --- trunk/Source/Modules/csharp.cxx 2010-05-27 20:59:29 UTC (rev 12063) +++ trunk/Source/Modules/csharp.cxx 2010-05-28 22:24:11 UTC (rev 12064) @@ -941,7 +941,7 @@ // below based on Swig_VargetToFunction() SwigType *ty = Swig_wrapped_var_type(Getattr(n, "type"), use_naturalvar_mode(n)); - Setattr(n, "wrap:action", NewStringf("result = (%s) %s;", SwigType_lstr(ty, 0), Getattr(n, "value"))); + Setattr(n, "wrap:action", NewStringf("result = (%s)(%s);", SwigType_lstr(ty, 0), Getattr(n, "value"))); } Swig_director_emit_dynamic_cast(n, f); Modified: trunk/Source/Modules/java.cxx =================================================================== --- trunk/Source/Modules/java.cxx 2010-05-27 20:59:29 UTC (rev 12063) +++ trunk/Source/Modules/java.cxx 2010-05-28 22:24:11 UTC (rev 12064) @@ -1024,7 +1024,7 @@ // below based on Swig_VargetToFunction() SwigType *ty = Swig_wrapped_var_type(Getattr(n, "type"), use_naturalvar_mode(n)); - Setattr(n, "wrap:action", NewStringf("result = (%s) %s;", SwigType_lstr(ty, 0), Getattr(n, "value"))); + Setattr(n, "wrap:action", NewStringf("result = (%s)(%s);", SwigType_lstr(ty, 0), Getattr(n, "value"))); } // Now write code to make the function call Modified: trunk/Source/Modules/modula3.cxx =================================================================== --- trunk/Source/Modules/modula3.cxx 2010-05-27 20:59:29 UTC (rev 12063) +++ trunk/Source/Modules/modula3.cxx 2010-05-28 22:24:11 UTC (rev 12064) @@ -1422,7 +1422,7 @@ // below based on Swig_VargetToFunction() SwigType *ty = Swig_wrapped_var_type(Getattr(n, "type"), use_naturalvar_mode(n)); - Setattr(n, "wrap:action", NewStringf("result = (%s) %s;", SwigType_lstr(ty, 0), Getattr(n, "value"))); + Setattr(n, "wrap:action", NewStringf("result = (%s)(%s);", SwigType_lstr(ty, 0), Getattr(n, "value"))); } Setattr(n, "wrap:name", wname); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wsf...@us...> - 2010-09-20 19:12:01
|
Revision: 12224 http://swig.svn.sourceforge.net/swig/?rev=12224&view=rev Author: wsfulton Date: 2010-09-20 19:11:55 +0000 (Mon, 20 Sep 2010) Log Message: ----------- File and line number corrections for warnings WARN_JAVA_MULTIPLE_INHERITANCE WARN_MODULA3_MULTIPLE_INHERITANCE WARN_CSHARP_MULTIPLE_INHERITANCE and errors 'The javabase typemap for proxy' 'No methodname attribute...' 'No methodmodifiers attribute...' 'The csbase typemap for proxy...' Modified Paths: -------------- trunk/Source/Modules/csharp.cxx trunk/Source/Modules/java.cxx trunk/Source/Modules/modula3.cxx Modified: trunk/Source/Modules/csharp.cxx =================================================================== --- trunk/Source/Modules/csharp.cxx 2010-09-18 01:14:21 UTC (rev 12223) +++ trunk/Source/Modules/csharp.cxx 2010-09-20 19:11:55 UTC (rev 12224) @@ -1640,10 +1640,10 @@ base = Next(base); continue; } - String *proxyclassname = SwigType_str(Getattr(n, "classtypeobj"), 0); - String *baseclassname = SwigType_str(Getattr(base.item, "name"), 0); - Swig_warning(WARN_CSHARP_MULTIPLE_INHERITANCE, input_file, line_number, - "Warning for %s proxy: Base %s ignored. Multiple inheritance is not supported in C#.\n", proxyclassname, baseclassname); + String *proxyclassname = Getattr(n, "classtypeobj"); + String *baseclassname = Getattr(base.item, "name"); + Swig_warning(WARN_CSHARP_MULTIPLE_INHERITANCE, Getfile(n), Getline(n), + "Warning for %s proxy: Base %s ignored. Multiple inheritance is not supported in Java.\n", SwigType_namestr(proxyclassname), SwigType_namestr(baseclassname)); base = Next(base); } } @@ -1661,9 +1661,9 @@ Delete(baseclass); baseclass = NULL; if (purebase_notderived) - Swig_error(input_file, line_number, "The csbase typemap for proxy %s must contain just one of the 'replace' or 'notderived' attributes.\n", typemap_lookup_type); + Swig_error(Getfile(n), Getline(n), "The csbase typemap for proxy %s must contain just one of the 'replace' or 'notderived' attributes.\n", typemap_lookup_type); } else if (Len(pure_baseclass) > 0 && Len(baseclass) > 0) { - Swig_warning(WARN_CSHARP_MULTIPLE_INHERITANCE, input_file, line_number, + Swig_warning(WARN_CSHARP_MULTIPLE_INHERITANCE, Getfile(n), Getline(n), "Warning for %s proxy: Base %s ignored. Multiple inheritance is not supported in C#. " "Perhaps you need one of the 'replace' or 'notderived' attributes in the csbase typemap?\n", typemap_lookup_type, pure_baseclass); } @@ -1704,10 +1704,10 @@ } if (tm && *Char(tm)) { if (!destruct_methodname) { - Swig_error(input_file, line_number, "No methodname attribute defined in csdestruct%s typemap for %s\n", (derived ? "_derived" : ""), proxy_class_name); + Swig_error(Getfile(n), Getline(n), "No methodname attribute defined in csdestruct%s typemap for %s\n", (derived ? "_derived" : ""), proxy_class_name); } if (!destruct_methodmodifiers) { - Swig_error(input_file, line_number, + Swig_error(Getfile(n), Getline(n), "No methodmodifiers attribute defined in csdestruct%s typemap for %s.\n", (derived ? "_derived" : ""), proxy_class_name); } } Modified: trunk/Source/Modules/java.cxx =================================================================== --- trunk/Source/Modules/java.cxx 2010-09-18 01:14:21 UTC (rev 12223) +++ trunk/Source/Modules/java.cxx 2010-09-20 19:11:55 UTC (rev 12224) @@ -1714,10 +1714,10 @@ base = Next(base); continue; } - String *proxyclassname = SwigType_str(Getattr(n, "classtypeobj"), 0); - String *baseclassname = SwigType_str(Getattr(base.item, "name"), 0); - Swig_warning(WARN_JAVA_MULTIPLE_INHERITANCE, input_file, line_number, - "Warning for %s proxy: Base %s ignored. Multiple inheritance is not supported in Java.\n", proxyclassname, baseclassname); + String *proxyclassname = Getattr(n, "classtypeobj"); + String *baseclassname = Getattr(base.item, "name"); + Swig_warning(WARN_JAVA_MULTIPLE_INHERITANCE, Getfile(n), Getline(n), + "Warning for %s proxy: Base %s ignored. Multiple inheritance is not supported in Java.\n", SwigType_namestr(proxyclassname), SwigType_namestr(baseclassname)); base = Next(base); } } @@ -1735,9 +1735,9 @@ Delete(baseclass); baseclass = NULL; if (purebase_notderived) - Swig_error(input_file, line_number, "The javabase typemap for proxy %s must contain just one of the 'replace' or 'notderived' attributes.\n", typemap_lookup_type); + Swig_error(Getfile(n), Getline(n), "The javabase typemap for proxy %s must contain just one of the 'replace' or 'notderived' attributes.\n", typemap_lookup_type); } else if (Len(pure_baseclass) > 0 && Len(baseclass) > 0) { - Swig_warning(WARN_JAVA_MULTIPLE_INHERITANCE, input_file, line_number, + Swig_warning(WARN_JAVA_MULTIPLE_INHERITANCE, Getfile(n), Getline(n), "Warning for %s proxy: Base %s ignored. Multiple inheritance is not supported in Java. " "Perhaps you need one of the 'replace' or 'notderived' attributes in the csbase typemap?\n", typemap_lookup_type, pure_baseclass); } @@ -1772,12 +1772,10 @@ } if (tm && *Char(tm)) { if (!destruct_methodname) { - Swig_error(input_file, line_number, - "No methodname attribute defined in javadestruct%s typemap for %s\n", (derived ? "_derived" : ""), proxy_class_name); + Swig_error(Getfile(n), Getline(n), "No methodname attribute defined in javadestruct%s typemap for %s\n", (derived ? "_derived" : ""), proxy_class_name); } if (!destruct_methodmodifiers) { - Swig_error(input_file, line_number, - "No methodmodifiers attribute defined in javadestruct%s typemap for %s.\n", (derived ? "_derived" : ""), proxy_class_name); + Swig_error(Getfile(n), Getline(n), "No methodmodifiers attribute defined in javadestruct%s typemap for %s.\n", (derived ? "_derived" : ""), proxy_class_name); } } // Emit the finalize and delete methods Modified: trunk/Source/Modules/modula3.cxx =================================================================== --- trunk/Source/Modules/modula3.cxx 2010-09-18 01:14:21 UTC (rev 12223) +++ trunk/Source/Modules/modula3.cxx 2010-09-20 19:11:55 UTC (rev 12224) @@ -2222,8 +2222,7 @@ } base = Next(base); if (base.item != NIL) { - Swig_warning(WARN_MODULA3_MULTIPLE_INHERITANCE, input_file, - line_number, + Swig_warning(WARN_MODULA3_MULTIPLE_INHERITANCE, Getfile(n), Getline(n), "Warning for %s proxy: Base %s ignored. Multiple inheritance is not supported in Modula 3.\n", classDeclarationName, Getattr(base.item, "name")); } @@ -2236,8 +2235,7 @@ // Inheritance from pure Modula 3 classes const String *pure_baseclass = typemapLookup(n, "m3base", classDeclarationName, WARN_NONE); if (hasContent(pure_baseclass) && hasContent(baseclass)) { - Swig_warning(WARN_MODULA3_MULTIPLE_INHERITANCE, input_file, - line_number, + Swig_warning(WARN_MODULA3_MULTIPLE_INHERITANCE, Getfile(n), Getline(n), "Warning for %s proxy: Base %s ignored. Multiple inheritance is not supported in Modula 3.\n", classDeclarationName, pure_baseclass); } // Pure Modula 3 interfaces @@ -2273,7 +2271,7 @@ destruct_methodname = Getattr(attributes, "tmap:m3destruct:methodname"); } if (!destruct_methodname) { - Swig_error(input_file, line_number, "No methodname attribute defined in m3destruct%s typemap for %s\n", (derived ? "_derived" : ""), proxy_class_name); + Swig_error(Getfile(n), Getline(n), "No methodname attribute defined in m3destruct%s typemap for %s\n", (derived ? "_derived" : ""), proxy_class_name); } // Emit the Finalize and Dispose methods if (tm) { @@ -2466,8 +2464,7 @@ Append(baseclassname, Getattr(base.item, "sym:name")); base = Next(base); if (base.item != NIL) { - Swig_warning(WARN_MODULA3_MULTIPLE_INHERITANCE, input_file, - line_number, + Swig_warning(WARN_MODULA3_MULTIPLE_INHERITANCE, input_file, line_number, "Warning for %s proxy: Base %s ignored. Multiple inheritance is not supported in Modula 3.\n", proxy_class_name, Getattr(base.item, "name")); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wsf...@us...> - 2010-09-21 06:07:13
|
Revision: 12225 http://swig.svn.sourceforge.net/swig/?rev=12225&view=rev Author: wsfulton Date: 2010-09-21 06:07:06 +0000 (Tue, 21 Sep 2010) Log Message: ----------- Line/file reporting corrections for warnings: WARN_RUBY_MULTIPLE_INHERITANCE, WARN_TYPE_UNDEFINED_CLASS, WARN_MODULA3_MULTIPLE_INHERITANCE Modified Paths: -------------- trunk/Source/Modules/modula3.cxx trunk/Source/Modules/python.cxx trunk/Source/Modules/ruby.cxx Modified: trunk/Source/Modules/modula3.cxx =================================================================== --- trunk/Source/Modules/modula3.cxx 2010-09-20 19:11:55 UTC (rev 12224) +++ trunk/Source/Modules/modula3.cxx 2010-09-21 06:07:06 UTC (rev 12225) @@ -2464,7 +2464,7 @@ Append(baseclassname, Getattr(base.item, "sym:name")); base = Next(base); if (base.item != NIL) { - Swig_warning(WARN_MODULA3_MULTIPLE_INHERITANCE, input_file, line_number, + Swig_warning(WARN_MODULA3_MULTIPLE_INHERITANCE, Getfile(n), Getline(n), "Warning for %s proxy: Base %s ignored. Multiple inheritance is not supported in Modula 3.\n", proxy_class_name, Getattr(base.item, "name")); } Modified: trunk/Source/Modules/python.cxx =================================================================== --- trunk/Source/Modules/python.cxx 2010-09-20 19:11:55 UTC (rev 12224) +++ trunk/Source/Modules/python.cxx 2010-09-21 06:07:06 UTC (rev 12225) @@ -2866,7 +2866,7 @@ bool ignore = GetFlag(b.item, "feature:ignore") ? true : false; if (!bname || ignore) { if (!bname && !ignore) { - Swig_warning(WARN_TYPE_UNDEFINED_CLASS, input_file, line_number, + Swig_warning(WARN_TYPE_UNDEFINED_CLASS, Getfile(n), Getline(n), "Base class '%s' ignored - unknown module name for base. Either import the appropriate module interface file or specify the name of the module in the %%import directive.\n", SwigType_namestr(Getattr(b.item, "name"))); } b = Next(b); Modified: trunk/Source/Modules/ruby.cxx =================================================================== --- trunk/Source/Modules/ruby.cxx 2010-09-20 19:11:55 UTC (rev 12224) +++ trunk/Source/Modules/ruby.cxx 2010-09-21 06:07:06 UTC (rev 12225) @@ -2395,7 +2395,7 @@ } String *proxyclassname = SwigType_str(Getattr(n, "classtypeobj"), 0); String *baseclassname = SwigType_str(Getattr(base.item, "name"), 0); - Swig_warning(WARN_RUBY_MULTIPLE_INHERITANCE, input_file, line_number, + Swig_warning(WARN_RUBY_MULTIPLE_INHERITANCE, Getfile(n), Getline(n), "Warning for %s proxy: Base %s ignored. Multiple inheritance is not supported in Ruby.\n", proxyclassname, baseclassname); base = Next(base); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wsf...@us...> - 2010-11-29 07:49:48
|
Revision: 12320 http://swig.svn.sourceforge.net/swig/?rev=12320&view=rev Author: wsfulton Date: 2010-11-29 07:49:42 +0000 (Mon, 29 Nov 2010) Log Message: ----------- Corrections to calls to SwigType_manglestr to use a genuine SwigType Modified Paths: -------------- trunk/Source/Modules/go.cxx trunk/Source/Modules/lua.cxx trunk/Source/Modules/mzscheme.cxx trunk/Source/Modules/tcl8.cxx Modified: trunk/Source/Modules/go.cxx =================================================================== --- trunk/Source/Modules/go.cxx 2010-11-28 23:12:03 UTC (rev 12319) +++ trunk/Source/Modules/go.cxx 2010-11-29 07:49:42 UTC (rev 12320) @@ -1128,7 +1128,7 @@ Parm *base_parm = NULL; if (base && !isStatic(n)) { - SwigType *base_type = Copy(Getattr(class_node, "classtype")); + SwigType *base_type = Copy(getClassType()); SwigType_add_pointer(base_type); base_parm = NewParm(base_type, NewString("arg1"), n); set_nextSibling(base_parm, parms); @@ -1244,7 +1244,7 @@ Parm *base_parm = NULL; if (base && !isStatic(n)) { - SwigType *base_type = Copy(Getattr(class_node, "classtype")); + SwigType *base_type = Copy(getClassType()); SwigType_add_pointer(base_type); base_parm = NewParm(base_type, NewString("arg1"), n); set_nextSibling(base_parm, parms); Modified: trunk/Source/Modules/lua.cxx =================================================================== --- trunk/Source/Modules/lua.cxx 2010-11-28 23:12:03 UTC (rev 12319) +++ trunk/Source/Modules/lua.cxx 2010-11-29 07:49:42 UTC (rev 12320) @@ -919,7 +919,7 @@ String *wrap_class = NewStringf("&_wrap_class_%s", mangled_classname); SwigType_remember_clientdata(t, wrap_class); - String *rt = Copy(Getattr(n, "classtype")); + String *rt = Copy(getClassType()); SwigType_add_pointer(rt); // Register the class structure with the type checker Modified: trunk/Source/Modules/mzscheme.cxx =================================================================== --- trunk/Source/Modules/mzscheme.cxx 2010-11-28 23:12:03 UTC (rev 12319) +++ trunk/Source/Modules/mzscheme.cxx 2010-11-29 07:49:42 UTC (rev 12320) @@ -682,7 +682,7 @@ String *mangled_classname = 0; String *real_classname = 0; String *scm_structname = NewString(""); - SwigType *ctype_ptr = NewStringf("p.%s", Getattr(n, "classtype")); + SwigType *ctype_ptr = NewStringf("p.%s", getClassType()); SwigType *t = NewStringf("p.%s", Getattr(n, "name")); swigtype_ptr = SwigType_manglestr(t); Modified: trunk/Source/Modules/tcl8.cxx =================================================================== --- trunk/Source/Modules/tcl8.cxx 2010-11-28 23:12:03 UTC (rev 12319) +++ trunk/Source/Modules/tcl8.cxx 2010-11-29 07:49:42 UTC (rev 12320) @@ -783,10 +783,7 @@ String *wrap_class = NewStringf("&_wrap_class_%s", mangled_classname); SwigType_remember_clientdata(t, wrap_class); - // t = Copy(Getattr(n,"classtype")); - // SwigType_add_pointer(t); - - String *rt = Copy(Getattr(n, "classtype")); + String *rt = Copy(getClassType()); SwigType_add_pointer(rt); // Register the class structure with the type checker This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wsf...@us...> - 2011-12-23 16:27:25
|
Revision: 12887 http://swig.svn.sourceforge.net/swig/?rev=12887&view=rev Author: wsfulton Date: 2011-12-23 16:27:15 +0000 (Fri, 23 Dec 2011) Log Message: ----------- Expand symname special variable in director typemaps Modified Paths: -------------- trunk/Source/Modules/csharp.cxx trunk/Source/Modules/d.cxx trunk/Source/Modules/go.cxx trunk/Source/Modules/java.cxx Modified: trunk/Source/Modules/csharp.cxx =================================================================== --- trunk/Source/Modules/csharp.cxx 2011-12-22 21:52:37 UTC (rev 12886) +++ trunk/Source/Modules/csharp.cxx 2011-12-23 16:27:15 UTC (rev 12887) @@ -3856,7 +3856,7 @@ Delete(extra_method_name); } - /* emit code */ + /* emit the director method */ if (status == SWIG_OK && output_director) { if (!is_void) { Replaceall(w->code, "$null", qualified_return); @@ -3866,6 +3866,7 @@ if (!ignored_method) Printv(director_delegate_callback, "\n", callback_def, callback_code, NIL); if (!Getattr(n, "defaultargs")) { + Replaceall(w->code, "$symname", symname); Wrapper_print(w, f_directors); Printv(f_directors_h, declaration, NIL); Printv(f_directors_h, inline_extra_method, NIL); Modified: trunk/Source/Modules/d.cxx =================================================================== --- trunk/Source/Modules/d.cxx 2011-12-22 21:52:37 UTC (rev 12886) +++ trunk/Source/Modules/d.cxx 2011-12-23 16:27:15 UTC (rev 12887) @@ -2344,7 +2344,7 @@ Delete(extra_method_name); } - /* emit code */ + /* emit the director method */ if (status == SWIG_OK && output_director) { if (!is_void) { Replaceall(w->code, "$null", qualified_return); @@ -2354,6 +2354,7 @@ if (!ignored_method) Printv(director_dcallbacks_code, callback_def, callback_code, NIL); if (!Getattr(n, "defaultargs")) { + Replaceall(w->code, "$symname", symname); Wrapper_print(w, f_directors); Printv(f_directors_h, declaration, NIL); Printv(f_directors_h, inline_extra_method, NIL); Modified: trunk/Source/Modules/go.cxx =================================================================== --- trunk/Source/Modules/go.cxx 2011-12-22 21:52:37 UTC (rev 12886) +++ trunk/Source/Modules/go.cxx 2011-12-23 16:27:15 UTC (rev 12887) @@ -2859,6 +2859,7 @@ * ------------------------------------------------------------ */ int oneClassDirectorMethod(Node *n, Node *parent, String *super) { + String *symname = Getattr(n, "sym:name"); if (!checkFunctionVisibility(n, parent)) { return SWIG_OK; } @@ -2942,12 +2943,12 @@ } Parm *p = 0; - Wrapper *f = NewWrapper(); + Wrapper *w = NewWrapper(); Swig_director_parms_fixup(parms); - Swig_typemap_attach_parms("directorin", parms, f); - Swig_typemap_attach_parms("directorargout", parms, f); + Swig_typemap_attach_parms("directorin", parms, w); + Swig_typemap_attach_parms("directorargout", parms, w); if (!is_ignored) { // We use an interface to see if this method is defined in Go. @@ -3354,29 +3355,29 @@ String *qname = NewString(""); Printv(qname, "SwigDirector_", class_name, "::", Getattr(n, "name"), NULL); decl = Swig_method_decl(rtype, Getattr(n, "decl"), qname, parms, 0, 0); - Printv(f->def, decl, NULL); + Printv(w->def, decl, NULL); Delete(decl); Delete(qname); String *throws = buildThrow(n); if (throws) { Printv(f_c_directors_h, " ", throws, NULL); - Printv(f->def, " ", throws, NULL); + Printv(w->def, " ", throws, NULL); Delete(throws); } Printv(f_c_directors_h, ";\n", NULL); - Printv(f->def, " {\n", NULL); + Printv(w->def, " {\n", NULL); if (SwigType_type(result) != T_VOID) { - Wrapper_add_local(f, "c_result", SwigType_lstr(Getattr(n, "returntype"), "c_result")); + Wrapper_add_local(w, "c_result", SwigType_lstr(Getattr(n, "returntype"), "c_result")); } if (!is_ignored) { if (!gccgo_flag) { - Printv(f->code, " struct {\n", NULL); - Printv(f->code, " void *go_val;\n", NULL); + Printv(w->code, " struct {\n", NULL); + Printv(w->code, " void *go_val;\n", NULL); p = parms; while (p) { @@ -3385,21 +3386,21 @@ } String *ln = Getattr(p, "lname"); String *cg = gcCTypeForGoValue(p, Getattr(p, "type"), ln); - Printv(f->code, " ", cg, ";\n", NULL); + Printv(w->code, " ", cg, ";\n", NULL); Delete(cg); p = Getattr(p, "tmap:directorin:next"); } if (SwigType_type(result) != T_VOID) { - Printv(f->code, " long : 0;\n", NULL); + Printv(w->code, " long : 0;\n", NULL); String *rname = NewString(Swig_cresult_name()); String *cg = gcCTypeForGoValue(n, result, rname); - Printv(f->code, " ", cg, ";\n", NULL); + Printv(w->code, " ", cg, ";\n", NULL); Delete(cg); Delete(rname); } - Printv(f->code, " } swig_a;\n", NULL); - Printv(f->code, " swig_a.go_val = go_val;\n", NULL); + Printv(w->code, " } swig_a;\n", NULL); + Printv(w->code, " swig_a.go_val = go_val;\n", NULL); p = parms; while (p) { @@ -3418,12 +3419,12 @@ Replaceall(tm, "$input", input); Replaceall(tm, "$owner", "0"); Delete(input); - Printv(f->code, "\t", tm, "\n", NULL); + Printv(w->code, "\t", tm, "\n", NULL); } p = Getattr(p, "tmap:directorin:next"); } - Printv(f->code, " crosscall2(", callback_wname, ", &swig_a, (int) sizeof swig_a);\n", NULL); + Printv(w->code, " crosscall2(", callback_wname, ", &swig_a, (int) sizeof swig_a);\n", NULL); if (SwigType_type(result) != T_VOID) { String *rname = NewString("c_result"); @@ -3436,9 +3437,9 @@ static const String *swig_a_result = NewStringf("swig_a.%s", Swig_cresult_name()); Replaceall(tm, "$input", swig_a_result); Replaceall(tm, "$result", "c_result"); - Printv(f->code, " ", tm, "\n", NULL); + Printv(w->code, " ", tm, "\n", NULL); String *retstr = SwigType_rcaststr(Getattr(n, "returntype"), "c_result"); - Printv(f->code, " return ", retstr, ";\n", NULL); + Printv(w->code, " return ", retstr, ";\n", NULL); Delete(retstr); Delete(tm); } @@ -3458,7 +3459,7 @@ if (SwigType_type(result) != T_VOID) { String *r = NewString(Swig_cresult_name()); String *tm = gccgoCTypeForGoValue(n, result, r); - Wrapper_add_local(f, r, tm); + Wrapper_add_local(w, r, tm); Delete(tm); Delete(r); } @@ -3476,7 +3477,7 @@ Setattr(p, "emit:input", pn); String *tm = gccgoCTypeForGoValue(n, Getattr(p, "type"), pn); - Wrapper_add_local(f, pn, tm); + Wrapper_add_local(w, pn, tm); Delete(tm); tm = Getattr(p, "tmap:directorin"); @@ -3486,7 +3487,7 @@ } else { Replaceall(tm, "$input", pn); Replaceall(tm, "$owner", 0); - Printv(f->code, " ", tm, "\n", NULL); + Printv(w->code, " ", tm, "\n", NULL); Printv(args, ", ", pn, NULL); } @@ -3494,11 +3495,11 @@ p = Getattr(p, "tmap:directorin:next"); } - Printv(f->code, " ", NULL); + Printv(w->code, " ", NULL); if (SwigType_type(result) != T_VOID) { - Printv(f->code, Swig_cresult_name(), " = ", NULL); + Printv(w->code, Swig_cresult_name(), " = ", NULL); } - Printv(f->code, callback_wname, "(go_val", args, ");\n", NULL); + Printv(w->code, callback_wname, "(go_val", args, ");\n", NULL); if (SwigType_type(result) != T_VOID) { String *rname = NewString("c_result"); @@ -3510,9 +3511,9 @@ } else { Replaceall(tm, "$input", Swig_cresult_name()); Replaceall(tm, "$result", "c_result"); - Printv(f->code, " ", tm, "\n", NULL); + Printv(w->code, " ", tm, "\n", NULL); String *retstr = SwigType_rcaststr(Getattr(n, "returntype"), "c_result"); - Printv(f->code, " return ", retstr, ";\n", NULL); + Printv(w->code, " return ", retstr, ";\n", NULL); Delete(retstr); Delete(tm); } @@ -3527,7 +3528,7 @@ if ((tm = Getattr(p, "tmap:directorargout"))) { Replaceall(tm, "$result", "jresult"); Replaceall(tm, "$input", Getattr(p, "emit:directorinput")); - Printv(f->code, tm, "\n", NIL); + Printv(w->code, tm, "\n", NIL); p = Getattr(p, "tmap:directorargout:next"); } else { p = nextSibling(p); @@ -3535,19 +3536,20 @@ } } else { assert(is_pure_virtual); - Printv(f->code, " _swig_gopanic(\"call to pure virtual function ", Getattr(parent, "sym:name"), name, "\");\n", NULL); + Printv(w->code, " _swig_gopanic(\"call to pure virtual function ", Getattr(parent, "sym:name"), name, "\");\n", NULL); if (SwigType_type(result) != T_VOID) { String *retstr = SwigType_rcaststr(Getattr(n, "returntype"), "c_result"); - Printv(f->code, " return ", retstr, ";\n", NULL); + Printv(w->code, " return ", retstr, ";\n", NULL); Delete(retstr); } } - Printv(f->code, "}", NULL); + Printv(w->code, "}", NULL); - Wrapper_print(f, f_c_directors); + Wrapper_print(w, f_c_directors); + Replaceall(w->code, "$symname", symname); - DelWrapper(f); + DelWrapper(w); } Delete(cn); Modified: trunk/Source/Modules/java.cxx =================================================================== --- trunk/Source/Modules/java.cxx 2011-12-22 21:52:37 UTC (rev 12886) +++ trunk/Source/Modules/java.cxx 2011-12-23 16:27:15 UTC (rev 12887) @@ -4048,7 +4048,7 @@ Delete(extra_method_name); } - /* emit code */ + /* emit the director method */ if (status == SWIG_OK && output_director) { if (!is_void) { Replaceall(w->code, "$null", qualified_return); @@ -4058,6 +4058,7 @@ if (!GetFlag(n, "feature:ignore")) Printv(imclass_directors, callback_def, callback_code, NIL); if (!Getattr(n, "defaultargs")) { + Replaceall(w->code, "$symname", symname); Wrapper_print(w, f_directors); Printv(f_directors_h, declaration, NIL); Printv(f_directors_h, inline_extra_method, NIL); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wsf...@us...> - 2012-08-05 22:17:38
|
Revision: 13524 http://swig.svn.sourceforge.net/swig/?rev=13524&view=rev Author: wsfulton Date: 2012-08-05 22:17:32 +0000 (Sun, 05 Aug 2012) Log Message: ----------- Fix some memory issues - use of deleted memory highlighted by DOH_DEBUG_MEMORY_POOLS Modified Paths: -------------- trunk/Source/Modules/csharp.cxx trunk/Source/Modules/java.cxx Modified: trunk/Source/Modules/csharp.cxx =================================================================== --- trunk/Source/Modules/csharp.cxx 2012-08-05 16:22:48 UTC (rev 13523) +++ trunk/Source/Modules/csharp.cxx 2012-08-05 22:17:32 UTC (rev 13524) @@ -3493,6 +3493,7 @@ if (returntype) { + Delete(qualified_return); qualified_return = SwigType_rcaststr(returntype, "c_result"); if (!is_void && !ignored_method) { @@ -3786,6 +3787,7 @@ Printf(callback_code, " return %s;\n", tm); } + Delete(tm); Delete(tp); } else Printf(callback_code, " %s;\n", upcall); @@ -3894,7 +3896,6 @@ } Delete(qualified_return); - Delete(c_ret_type); Delete(declaration); Delete(callback_typedef_parms); Delete(delegate_parms); Modified: trunk/Source/Modules/java.cxx =================================================================== --- trunk/Source/Modules/java.cxx 2012-08-05 16:22:48 UTC (rev 13523) +++ trunk/Source/Modules/java.cxx 2012-08-05 22:17:32 UTC (rev 13524) @@ -3565,6 +3565,7 @@ if (returntype) { + Delete(qualified_return); qualified_return = SwigType_rcaststr(returntype, "c_result"); if (!is_void && (!ignored_method || pure_virtual)) { @@ -3814,8 +3815,6 @@ if (!ignored_method) Printf(w->code, "%s\n", tm); - Delete(tm); - /* Add parameter to the intermediate class code if generating the * intermediate's upcall code */ if ((tm = Getattr(p, "tmap:jtype"))) { @@ -3890,7 +3889,6 @@ Delete(arg); Delete(c_decl); - Delete(c_param_type); Delete(ln); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wsf...@us...> - 2012-10-27 17:38:12
|
Revision: 13874 http://swig.svn.sourceforge.net/swig/?rev=13874&view=rev Author: wsfulton Date: 2012-10-27 17:38:05 +0000 (Sat, 27 Oct 2012) Log Message: ----------- Cosmetic variable renaming for consistency across language modules Modified Paths: -------------- trunk/Source/Modules/directors.cxx trunk/Source/Modules/go.cxx trunk/Source/Modules/java.cxx trunk/Source/Modules/ocaml.cxx trunk/Source/Modules/octave.cxx trunk/Source/Modules/php.cxx trunk/Source/Modules/python.cxx trunk/Source/Modules/ruby.cxx Modified: trunk/Source/Modules/directors.cxx =================================================================== --- trunk/Source/Modules/directors.cxx 2012-10-27 17:37:34 UTC (rev 13873) +++ trunk/Source/Modules/directors.cxx 2012-10-27 17:38:05 UTC (rev 13874) @@ -132,7 +132,7 @@ * */ -String *Swig_method_decl(SwigType *returntype, SwigType *decl, const_String_or_char_ptr id, List *args, int strip, int values) { +String *Swig_method_decl(SwigType *rettype, SwigType *decl, const_String_or_char_ptr id, List *args, int strip, int values) { String *result; List *elements; String *element = 0, *nextelement; @@ -203,7 +203,7 @@ Append(result, ", "); } Append(result, ")"); - } else if (returntype) { // This check is intended for conversion operators to a pointer/reference which needs the pointer/reference ignoring in the declaration + } else if (rettype) { // This check is intended for conversion operators to a pointer/reference which needs the pointer/reference ignoring in the declaration if (SwigType_ispointer(element)) { Insert(result, 0, "*"); if ((nextelement) && ((SwigType_isfunction(nextelement) || (SwigType_isarray(nextelement))))) { @@ -256,9 +256,9 @@ Chop(result); - if (returntype) { + if (rettype) { Insert(result, 0, " "); - String *rtype = SwigType_str(returntype, 0); + String *rtype = SwigType_str(rettype, 0); Insert(result, 0, rtype); Delete(rtype); } Modified: trunk/Source/Modules/go.cxx =================================================================== --- trunk/Source/Modules/go.cxx 2012-10-27 17:37:34 UTC (rev 13873) +++ trunk/Source/Modules/go.cxx 2012-10-27 17:38:05 UTC (rev 13874) @@ -2977,7 +2977,6 @@ int parm_count = emit_num_arguments(parms); SwigType *result = Getattr(n, "type"); - SwigType *returntype = result; // Save the type for overload processing. Setattr(n, "go:type", result); @@ -3462,7 +3461,7 @@ Printv(w->def, " {\n", NULL); if (SwigType_type(result) != T_VOID) { - Wrapper_add_local(w, "c_result", SwigType_lstr(returntype, "c_result")); + Wrapper_add_local(w, "c_result", SwigType_lstr(result, "c_result")); } if (!is_ignored) { @@ -3528,7 +3527,7 @@ Replaceall(tm, "$input", swig_a_result); Replaceall(tm, "$result", "c_result"); Printv(w->code, " ", tm, "\n", NULL); - String *retstr = SwigType_rcaststr(returntype, "c_result"); + String *retstr = SwigType_rcaststr(result, "c_result"); Printv(w->code, " return ", retstr, ";\n", NULL); Delete(retstr); Delete(tm); @@ -3600,7 +3599,7 @@ Replaceall(tm, "$input", Swig_cresult_name()); Replaceall(tm, "$result", "c_result"); Printv(w->code, " ", tm, "\n", NULL); - String *retstr = SwigType_rcaststr(returntype, "c_result"); + String *retstr = SwigType_rcaststr(result, "c_result"); Printv(w->code, " return ", retstr, ";\n", NULL); Delete(retstr); Delete(tm); @@ -3625,7 +3624,7 @@ assert(is_pure_virtual); Printv(w->code, " _swig_gopanic(\"call to pure virtual function ", Getattr(parent, "sym:name"), name, "\");\n", NULL); if (SwigType_type(result) != T_VOID) { - String *retstr = SwigType_rcaststr(returntype, "c_result"); + String *retstr = SwigType_rcaststr(result, "c_result"); Printv(w->code, " return ", retstr, ";\n", NULL); Delete(retstr); } Modified: trunk/Source/Modules/java.cxx =================================================================== --- trunk/Source/Modules/java.cxx 2012-10-27 17:37:34 UTC (rev 13873) +++ trunk/Source/Modules/java.cxx 2012-10-27 17:38:05 UTC (rev 13874) @@ -3519,7 +3519,7 @@ String *c_classname = Getattr(parent, "name"); String *name = Getattr(n, "name"); String *symname = Getattr(n, "sym:name"); - SwigType *returntype = Getattr(n, "returntype"); + SwigType *returntype = Getattr(n, "type"); String *overloaded_name = getOverloadedName(n); String *storage = Getattr(n, "storage"); String *value = Getattr(n, "value"); Modified: trunk/Source/Modules/ocaml.cxx =================================================================== --- trunk/Source/Modules/ocaml.cxx 2012-10-27 17:37:34 UTC (rev 13873) +++ trunk/Source/Modules/ocaml.cxx 2012-10-27 17:38:05 UTC (rev 13874) @@ -1383,7 +1383,7 @@ String *storage = Getattr(n, "storage"); String *value = Getattr(n, "value"); String *decl = Getattr(n, "decl"); - String *return_type = Getattr(n, "type"); + String *returntype = Getattr(n, "type"); String *name = Getattr(n, "name"); String *classname = Getattr(parent, "sym:name"); String *c_classname = Getattr(parent, "name"); @@ -1408,7 +1408,7 @@ /* determine if the method returns a pointer */ is_pointer = SwigType_ispointer_return(decl); - is_void = (!Cmp(return_type, "void") && !is_pointer); + is_void = (!Cmp(returntype, "void") && !is_pointer); /* virtual method definition */ String *target; @@ -1430,7 +1430,7 @@ */ if (!is_void) { if (!(ignored_method && !pure_virtual)) { - Wrapper_add_localv(w, "c_result", SwigType_lstr(return_type, "c_result"), NIL); + Wrapper_add_localv(w, "c_result", SwigType_lstr(returntype, "c_result"), NIL); } } @@ -1629,15 +1629,15 @@ if (!(ignored_method && !pure_virtual)) { /* A little explanation: * The director_enum test case makes a method whose return type - * is an enum type. return_type here is "int". gcc complains + * is an enum type. returntype here is "int". gcc complains * about an implicit enum conversion, and although i don't strictly * agree with it, I'm working on fixing the error: * * Below is what I came up with. It's not great but it should * always essentially work. */ - if (!SwigType_isreference(return_type)) { - Printf(w->code, "CAMLreturn_type((%s)c_result);\n", SwigType_lstr(return_type, "")); + if (!SwigType_isreference(returntype)) { + Printf(w->code, "CAMLreturn_type((%s)c_result);\n", SwigType_lstr(returntype, "")); } else { Printf(w->code, "CAMLreturn_type(*c_result);\n"); } Modified: trunk/Source/Modules/octave.cxx =================================================================== --- trunk/Source/Modules/octave.cxx 2012-10-27 17:37:34 UTC (rev 13873) +++ trunk/Source/Modules/octave.cxx 2012-10-27 17:38:05 UTC (rev 13874) @@ -1248,7 +1248,7 @@ int is_void = 0; int is_pointer = 0; String *decl = Getattr(n, "decl"); - String *return_type = Getattr(n, "type"); + String *returntype = Getattr(n, "type"); String *name = Getattr(n, "name"); String *classname = Getattr(parent, "sym:name"); String *c_classname = Getattr(parent, "name"); @@ -1273,7 +1273,7 @@ // determine if the method returns a pointer is_pointer = SwigType_ispointer_return(decl); - is_void = (!Cmp(return_type, "void") && !is_pointer); + is_void = (!Cmp(returntype, "void") && !is_pointer); // virtual method definition String *target; @@ -1327,7 +1327,7 @@ // handle it, including declaration of c_result ($result). if (!is_void) { if (!(ignored_method && !pure_virtual)) { - String *cres = SwigType_lstr(return_type, "c_result"); + String *cres = SwigType_lstr(returntype, "c_result"); Printf(w->code, "%s;\n", cres); Delete(cres); } @@ -1444,7 +1444,7 @@ } else { Swig_warning(WARN_TYPEMAP_DIRECTOROUT_UNDEF, input_file, line_number, "Unable to use return type %s in director method %s::%s (skipping method).\n", - SwigType_str(return_type, 0), SwigType_namestr(c_classname), SwigType_namestr(name)); + SwigType_str(returntype, 0), SwigType_namestr(c_classname), SwigType_namestr(name)); status = SWIG_ERROR; } } @@ -1471,8 +1471,8 @@ if (!is_void) { if (!(ignored_method && !pure_virtual)) { - String *rettype = SwigType_str(return_type, 0); - if (!SwigType_isreference(return_type)) { + String *rettype = SwigType_str(returntype, 0); + if (!SwigType_isreference(returntype)) { Printf(w->code, "return (%s) c_result;\n", rettype); } else { Printf(w->code, "return (%s) *c_result;\n", rettype); Modified: trunk/Source/Modules/php.cxx =================================================================== --- trunk/Source/Modules/php.cxx 2012-10-27 17:37:34 UTC (rev 13873) +++ trunk/Source/Modules/php.cxx 2012-10-27 17:38:05 UTC (rev 13874) @@ -2416,7 +2416,7 @@ int is_void = 0; int is_pointer = 0; String *decl = Getattr(n, "decl"); - String *return_type = Getattr(n, "type"); + String *returntype = Getattr(n, "type"); String *name = Getattr(n, "name"); String *classname = Getattr(parent, "sym:name"); String *c_classname = Getattr(parent, "name"); @@ -2441,7 +2441,7 @@ /* determine if the method returns a pointer */ is_pointer = SwigType_ispointer_return(decl); - is_void = (Cmp(return_type, "void") == 0 && !is_pointer); + is_void = (Cmp(returntype, "void") == 0 && !is_pointer); /* virtual method definition */ String *target; @@ -2497,7 +2497,7 @@ */ if (!is_void) { if (!(ignored_method && !pure_virtual)) { - String *cres = SwigType_lstr(return_type, "c_result"); + String *cres = SwigType_lstr(returntype, "c_result"); Printf(w->code, "%s;\n", cres); Delete(cres); } @@ -2650,7 +2650,7 @@ Delete(tm); } else { Swig_warning(WARN_TYPEMAP_DIRECTOROUT_UNDEF, input_file, line_number, - "Unable to use return type %s in director method %s::%s (skipping method).\n", SwigType_str(return_type, 0), SwigType_namestr(c_classname), + "Unable to use return type %s in director method %s::%s (skipping method).\n", SwigType_str(returntype, 0), SwigType_namestr(c_classname), SwigType_namestr(name)); status = SWIG_ERROR; } @@ -2677,8 +2677,8 @@ if (!is_void) { if (!(ignored_method && !pure_virtual)) { - String *rettype = SwigType_str(return_type, 0); - if (!SwigType_isreference(return_type)) { + String *rettype = SwigType_str(returntype, 0); + if (!SwigType_isreference(returntype)) { Printf(w->code, "return (%s) c_result;\n", rettype); } else { Printf(w->code, "return (%s) *c_result;\n", rettype); Modified: trunk/Source/Modules/python.cxx =================================================================== --- trunk/Source/Modules/python.cxx 2012-10-27 17:37:34 UTC (rev 13873) +++ trunk/Source/Modules/python.cxx 2012-10-27 17:38:05 UTC (rev 13874) @@ -4538,7 +4538,7 @@ Wrapper *w = NewWrapper(); String *tm; String *wrap_args = NewString(""); - String *return_type = Getattr(n, "type"); + String *returntype = Getattr(n, "type"); String *value = Getattr(n, "value"); String *storage = Getattr(n, "storage"); bool pure_virtual = false; @@ -4554,7 +4554,7 @@ /* determine if the method returns a pointer */ is_pointer = SwigType_ispointer_return(decl); - is_void = (!Cmp(return_type, "void") && !is_pointer); + is_void = (!Cmp(returntype, "void") && !is_pointer); /* virtual method definition */ String *target; @@ -4608,7 +4608,7 @@ */ if (!is_void) { if (!(ignored_method && !pure_virtual)) { - String *cres = SwigType_lstr(return_type, "c_result"); + String *cres = SwigType_lstr(returntype, "c_result"); Printf(w->code, "%s;\n", cres); Delete(cres); } @@ -4903,7 +4903,7 @@ Delete(tm); } else { Swig_warning(WARN_TYPEMAP_DIRECTOROUT_UNDEF, input_file, line_number, - "Unable to use return type %s in director method %s::%s (skipping method).\n", SwigType_str(return_type, 0), SwigType_namestr(c_classname), + "Unable to use return type %s in director method %s::%s (skipping method).\n", SwigType_str(returntype, 0), SwigType_namestr(c_classname), SwigType_namestr(name)); status = SWIG_ERROR; } @@ -4940,8 +4940,8 @@ if (!is_void) { if (!(ignored_method && !pure_virtual)) { - String *rettype = SwigType_str(return_type, 0); - if (!SwigType_isreference(return_type)) { + String *rettype = SwigType_str(returntype, 0); + if (!SwigType_isreference(returntype)) { Printf(w->code, "return (%s) c_result;\n", rettype); } else { Printf(w->code, "return (%s) *c_result;\n", rettype); Modified: trunk/Source/Modules/ruby.cxx =================================================================== --- trunk/Source/Modules/ruby.cxx 2012-10-27 17:37:34 UTC (rev 13873) +++ trunk/Source/Modules/ruby.cxx 2012-10-27 17:38:05 UTC (rev 13874) @@ -3027,7 +3027,7 @@ Wrapper *w = NewWrapper(); String *tm; String *wrap_args = NewString(""); - String *return_type = Getattr(n, "type"); + String *returntype = Getattr(n, "type"); Parm *p; String *value = Getattr(n, "value"); String *storage = Getattr(n, "storage"); @@ -3050,7 +3050,7 @@ /* determine if the method returns a pointer */ is_pointer = SwigType_ispointer_return(decl); - is_void = (!Cmp(return_type, "void") && !is_pointer); + is_void = (!Cmp(returntype, "void") && !is_pointer); /* virtual method definition */ String *target; @@ -3107,7 +3107,7 @@ */ if (!is_void) { if (!(ignored_method && !pure_virtual)) { - Wrapper_add_localv(w, "c_result", SwigType_lstr(return_type, "c_result"), NIL); + Wrapper_add_localv(w, "c_result", SwigType_lstr(returntype, "c_result"), NIL); } } @@ -3292,7 +3292,7 @@ Printv(w->code, tm, "\n", NIL); } else { Swig_warning(WARN_TYPEMAP_DIRECTOROUT_UNDEF, input_file, line_number, - "Unable to use return type %s in director method %s::%s (skipping method).\n", SwigType_str(return_type, 0), + "Unable to use return type %s in director method %s::%s (skipping method).\n", SwigType_str(returntype, 0), SwigType_namestr(c_classname), SwigType_namestr(name)); status = SWIG_ERROR; } @@ -3323,8 +3323,8 @@ /* any existing helper functions to handle this? */ if (!is_void) { if (!(ignored_method && !pure_virtual)) { - String *rettype = SwigType_str(return_type, 0); - if (!SwigType_isreference(return_type)) { + String *rettype = SwigType_str(returntype, 0); + if (!SwigType_isreference(returntype)) { Printf(w->code, "return (%s) c_result;\n", rettype); } else { Printf(w->code, "return (%s) *c_result;\n", rettype); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wsf...@us...> - 2012-11-13 22:21:57
|
Revision: 13884 http://swig.svn.sourceforge.net/swig/?rev=13884&view=rev Author: wsfulton Date: 2012-11-13 22:21:51 +0000 (Tue, 13 Nov 2012) Log Message: ----------- Fix 'name' attribute for explicitly defined constructors and destructors if the associated class was in a namespace, eg a correct fully qualified name might be Space::Klass::~Klass, but it was Space::~Klass, now it is simply ~Klass (names are now consistent with implicitly added constructors/destructors). Modified Paths: -------------- trunk/Source/Modules/lang.cxx trunk/Source/Modules/typepass.cxx Modified: trunk/Source/Modules/lang.cxx =================================================================== --- trunk/Source/Modules/lang.cxx 2012-11-13 22:20:47 UTC (rev 13883) +++ trunk/Source/Modules/lang.cxx 2012-11-13 22:21:51 UTC (rev 13884) @@ -2613,11 +2613,14 @@ } } else { String *expected_name = ClassName; - if (name && (!Equal(Swig_scopename_last(name), Swig_scopename_last(expected_name))) && !(Getattr(n, "template"))) { + String *scope = Swig_scopename_check(ClassName) ? Swig_scopename_prefix(ClassName) : 0; + String *actual_name = scope ? NewStringf("%s::%s", scope, name) : NewString(name); + Delete(scope); + if (!Equal(actual_name, expected_name) && !(Getattr(n, "template"))) { bool illegal_name = true; if (Extend) { - // SWIG extension - allow typedef names as constructor name in %extend - an unnamed struct declared with a typedef can thus be given a 'constructor'. - SwigType *name_resolved = SwigType_typedef_resolve_all(name); + // SWIG extension - allow typedef names as destructor name in %extend - an unnamed struct declared with a typedef can thus be given a 'destructor'. + SwigType *name_resolved = SwigType_typedef_resolve_all(actual_name); SwigType *expected_name_resolved = SwigType_typedef_resolve_all(expected_name); illegal_name = !Equal(name_resolved, expected_name_resolved); Delete(name_resolved); @@ -2747,11 +2750,12 @@ Setattr(n, "sym:name", ClassPrefix); } - String *expected_name = NewString(ClassName); - Replace(expected_name, "~", "", DOH_REPLACE_FIRST); - String *actual_name = NewString(name); + String *expected_name = ClassName; + String *scope = Swig_scopename_check(ClassName) ? Swig_scopename_prefix(ClassName) : 0; + String *actual_name = scope ? NewStringf("%s::%s", scope, name) : NewString(name); + Delete(scope); Replace(actual_name, "~", "", DOH_REPLACE_FIRST); - if (name && (!Equal(Swig_scopename_last(actual_name), Swig_scopename_last(expected_name))) && !(Getattr(n, "template"))) { + if (!Equal(actual_name, expected_name) && !(Getattr(n, "template"))) { bool illegal_name = true; if (Extend) { // SWIG extension - allow typedef names as destructor name in %extend - an unnamed struct declared with a typedef can thus be given a 'destructor'. @@ -2765,7 +2769,6 @@ if (illegal_name) { Swig_warning(WARN_LANG_ILLEGAL_DESTRUCTOR, input_file, line_number, "Illegal destructor name %s. Ignored.\n", Swig_name_decl(n)); Swig_restore(n); - Delete(expected_name); return SWIG_NOWRAP; } } @@ -2773,7 +2776,6 @@ Setattr(CurrentClass, "has_destructor", "1"); Swig_restore(n); - Delete(expected_name); return SWIG_OK; } Modified: trunk/Source/Modules/typepass.cxx =================================================================== --- trunk/Source/Modules/typepass.cxx 2012-11-13 22:20:47 UTC (rev 13883) +++ trunk/Source/Modules/typepass.cxx 2012-11-13 22:21:51 UTC (rev 13884) @@ -702,11 +702,6 @@ normalize_parms(Getattr(n, "parms")); normalize_parms(Getattr(n, "throws")); - /* If in a namespace, patch the class name */ - if (nsname) { - String *nname = NewStringf("%s::%s", nsname, Getattr(n, "name")); - Setattr(n, "name", nname); - } clean_overloaded(n); return SWIG_OK; } @@ -716,11 +711,6 @@ * ------------------------------------------------------------ */ virtual int destructorDeclaration(Node *n) { - /* If in a namespace, patch the class name */ - if (nsname) { - String *nname = NewStringf("%s::%s", nsname, Getattr(n, "name")); - Setattr(n, "name", nname); - } return SWIG_OK; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wsf...@us...> - 2012-11-14 22:17:03
|
Revision: 13886 http://swig.svn.sourceforge.net/swig/?rev=13886&view=rev Author: wsfulton Date: 2012-11-14 22:16:54 +0000 (Wed, 14 Nov 2012) Log Message: ----------- Resource leak fixes (or hiding them from Coverity static analysis tool by using String instead of char *) Modified Paths: -------------- trunk/Source/Modules/allegrocl.cxx trunk/Source/Modules/csharp.cxx trunk/Source/Modules/d.cxx trunk/Source/Modules/go.cxx trunk/Source/Modules/guile.cxx trunk/Source/Modules/java.cxx trunk/Source/Modules/mzscheme.cxx trunk/Source/Modules/ocaml.cxx trunk/Source/Modules/octave.cxx trunk/Source/Modules/php.cxx trunk/Source/Modules/r.cxx trunk/Source/Modules/uffi.cxx Modified: trunk/Source/Modules/allegrocl.cxx =================================================================== --- trunk/Source/Modules/allegrocl.cxx 2012-11-14 22:16:07 UTC (rev 13885) +++ trunk/Source/Modules/allegrocl.cxx 2012-11-14 22:16:54 UTC (rev 13886) @@ -48,7 +48,7 @@ static String *module_name = 0; static String *swig_package = 0; -const char *identifier_converter = "identifier-convert-null"; +static String *identifier_converter = NewString("identifier-convert-null"); static bool CWrap = true; // generate wrapper file for C code by default. most correct. static bool Generate_Wrapper = false; @@ -1605,14 +1605,15 @@ /* check for built-ins */ if (!strcmp(conv, "lispify")) { - identifier_converter = "identifier-convert-lispify"; + Delete(identifier_converter); + identifier_converter = NewString("identifier-convert-lispify"); } else if (!strcmp(conv, "null")) { - identifier_converter = "identifier-convert-null"; + Delete(identifier_converter); + identifier_converter = NewString("identifier-convert-null"); } else { /* Must be user defined */ - char *idconv = new char[strlen(conv) + 1]; - strcpy(idconv, conv); - identifier_converter = idconv; + Delete(identifier_converter); + identifier_converter = NewString(conv); } } else if (!strcmp(argv[i], "-cwrap")) { CWrap = true; Modified: trunk/Source/Modules/csharp.cxx =================================================================== --- trunk/Source/Modules/csharp.cxx 2012-11-14 22:16:07 UTC (rev 13885) +++ trunk/Source/Modules/csharp.cxx 2012-11-14 22:16:54 UTC (rev 13886) @@ -792,8 +792,10 @@ if (Getattr(n, "sym:overloaded")) { // Emit warnings for the few cases that can't be overloaded in C# and give up on generating wrapper Swig_overload_check(n); - if (Getattr(n, "overload:ignore")) + if (Getattr(n, "overload:ignore")) { + DelWrapper(f); return SWIG_OK; + } } Printv(imclass_class_code, "\n [DllImport(\"", dllimport, "\", EntryPoint=\"", wname, "\")]\n", NIL); Modified: trunk/Source/Modules/d.cxx =================================================================== --- trunk/Source/Modules/d.cxx 2012-11-14 22:16:07 UTC (rev 13885) +++ trunk/Source/Modules/d.cxx 2012-11-14 22:16:54 UTC (rev 13886) @@ -1579,8 +1579,10 @@ if (Getattr(n, "sym:overloaded")) { // Emit warnings for the few cases that can't be overloaded in D and give up on generating wrapper Swig_overload_check(n); - if (Getattr(n, "overload:ignore")) + if (Getattr(n, "overload:ignore")) { + DelWrapper(f); return SWIG_OK; + } } // Collect the parameter list for the intermediary D module declaration of Modified: trunk/Source/Modules/go.cxx =================================================================== --- trunk/Source/Modules/go.cxx 2012-11-14 22:16:07 UTC (rev 13885) +++ trunk/Source/Modules/go.cxx 2012-11-14 22:16:54 UTC (rev 13886) @@ -3640,6 +3640,7 @@ Delete(upcall_name); Delete(callback_wname); Delete(go_name); + DelWrapper(w); return SWIG_OK; } Modified: trunk/Source/Modules/guile.cxx =================================================================== --- trunk/Source/Modules/guile.cxx 2012-11-14 22:16:07 UTC (rev 13885) +++ trunk/Source/Modules/guile.cxx 2012-11-14 22:16:54 UTC (rev 13886) @@ -59,9 +59,9 @@ static File *f_init = 0; -static char *prefix = (char *) "gswig_"; +static String *prefix = NewString("gswig_"); static char *module = 0; -static char *package = 0; +static String *package = 0; static enum { GUILE_LSTYLE_SIMPLE, // call `SWIG_init()' GUILE_LSTYLE_PASSIVE, // passive linking (no module code) @@ -127,7 +127,7 @@ * ------------------------------------------------------------ */ virtual void main(int argc, char *argv[]) { - int i, orig_len; + int i; SWIG_library_directory("guile"); SWIG_typemap_lang("guile"); @@ -140,8 +140,7 @@ SWIG_exit(EXIT_SUCCESS); } else if (strcmp(argv[i], "-prefix") == 0) { if (argv[i + 1]) { - prefix = new char[strlen(argv[i + 1]) + 2]; - strcpy(prefix, argv[i + 1]); + prefix = NewString(argv[i + 1]); Swig_mark_arg(i); Swig_mark_arg(i + 1); i++; @@ -150,8 +149,7 @@ } } else if (strcmp(argv[i], "-package") == 0) { if (argv[i + 1]) { - package = new char[strlen(argv[i + 1]) + 2]; - strcpy(package, argv[i + 1]); + package = NewString(argv[i + 1]); Swig_mark_arg(i); Swig_mark_arg(i + 1); i++; @@ -278,12 +276,12 @@ // should use Swig_warning() ? Printf(stderr, "guile: Warning: -exportprimitive only makes sense with passive linkage without a scmstub.\n"); } - // Make sure `prefix' ends in an underscore - orig_len = strlen(prefix); - if (prefix[orig_len - 1] != '_') { - prefix[1 + orig_len] = 0; - prefix[orig_len] = '_'; + // Make sure `prefix' ends in an underscore + if (prefix) { + const char *px = Char(prefix); + if (px[Len(prefix)] != '_') + Printf(prefix, "_"); } /* Add a symbol for this module */ Modified: trunk/Source/Modules/java.cxx =================================================================== --- trunk/Source/Modules/java.cxx 2012-11-14 22:16:07 UTC (rev 13885) +++ trunk/Source/Modules/java.cxx 2012-11-14 22:16:54 UTC (rev 13886) @@ -876,8 +876,10 @@ if (Getattr(n, "sym:overloaded")) { // Emit warnings for the few cases that can't be overloaded in Java and give up on generating wrapper Swig_overload_check(n); - if (Getattr(n, "overload:ignore")) + if (Getattr(n, "overload:ignore")) { + DelWrapper(f); return SWIG_OK; + } } Printf(imclass_class_code, " public final static native %s %s(", im_return_type, overloaded_name); Modified: trunk/Source/Modules/mzscheme.cxx =================================================================== --- trunk/Source/Modules/mzscheme.cxx 2012-11-14 22:16:07 UTC (rev 13885) +++ trunk/Source/Modules/mzscheme.cxx 2012-11-14 22:16:54 UTC (rev 13886) @@ -33,12 +33,10 @@ static String *struct_name = 0; static String *mangled_struct_name = 0; -static char *prefix = 0; +static String *prefix = 0; static bool declaremodule = false; static bool noinit = false; -//DLOPEN PATCH -static char *load_libraries = NULL; -//DLOPEN PATCH +static String *load_libraries = NULL; static String *module = 0; static char *mzscheme_path = (char *) "mzscheme"; static String *init_func_def = 0; @@ -75,8 +73,7 @@ SWIG_exit(0); } else if (strcmp(argv[i], "-prefix") == 0) { if (argv[i + 1]) { - prefix = new char[strlen(argv[i + 1]) + 2]; - strcpy(prefix, argv[i + 1]); + prefix = NewString(argv[i + 1]); Swig_mark_arg(i); Swig_mark_arg(i + 1); i++; @@ -90,26 +87,27 @@ noinit = true; Swig_mark_arg(i); } -// DLOPEN PATCH else if (strcmp(argv[i], "-dynamic-load") == 0) { - load_libraries = new char[strlen(argv[i + 1]) + 2]; - strcpy(load_libraries, argv[i + 1]); - Swig_mark_arg(i++); - Swig_mark_arg(i); + if (argv[i + 1]) { + Delete(load_libraries); + load_libraries = NewString(argv[i + 1]); + Swig_mark_arg(i++); + Swig_mark_arg(i); + } else { + Swig_arg_error(); + } } -// DLOPEN PATCH } } - // If a prefix has been specified make sure it ends in a '_' + // If a prefix has been specified make sure it ends in a '_' (not actually used!) if (prefix) { - if (prefix[strlen(prefix)] != '_') { - prefix[strlen(prefix) + 1] = 0; - prefix[strlen(prefix)] = '_'; - } + const char *px = Char(prefix); + if (px[Len(prefix)] != '_') + Printf(prefix, "_"); } else - prefix = (char *) "swig_"; + prefix = NewString("swig_"); // Add a symbol for this module @@ -177,11 +175,9 @@ Printf(f_init, "\treturn scheme_void;\n}\n"); Printf(f_init, "Scheme_Object *scheme_initialize(Scheme_Env *env) {\n"); - // DLOPEN PATCH if (load_libraries) { Printf(f_init, "mz_set_dlopen_libraries(\"%s\");\n", load_libraries); } - // DLOPEN PATCH Printf(f_init, "\treturn scheme_reload(env);\n"); Printf(f_init, "}\n"); @@ -244,14 +240,12 @@ int numreq; String *overname = 0; - // PATCH DLOPEN if (load_libraries) { ParmList *parms = Getattr(n, "parms"); SwigType *type = Getattr(n, "type"); String *name = NewString("caller"); Setattr(n, "wrap:action", Swig_cresult(type, Swig_cresult_name(), Swig_cfunction_call(name, parms))); } - // PATCH DLOPEN // Make a wrapper name for this String *wname = Swig_name_wrapper(iname); @@ -291,7 +285,6 @@ numargs = emit_num_arguments(l); numreq = emit_num_required(l); - // DLOPEN PATCH /* Add the holder for the pointer to the function to be opened */ if (load_libraries) { Wrapper_add_local(f, "_function_loaded", "static int _function_loaded=(1==0)"); @@ -302,19 +295,16 @@ Wrapper_add_local(f, "caller", SwigType_lstr(d, func)); /*"(*caller)()")); */ } } - // DLOPEN PATCH // adds local variables Wrapper_add_local(f, "lenv", "int lenv = 1"); Wrapper_add_local(f, "values", "Scheme_Object *values[MAXVALUES]"); - // DLOPEN PATCH if (load_libraries) { Printf(f->code, "if (!_function_loaded) { _the_function=mz_load_function(\"%s\");_function_loaded=(1==1); }\n", iname); Printf(f->code, "if (!_the_function) { scheme_signal_error(\"Cannot load C function '%s'\"); }\n", iname); Printf(f->code, "caller=_the_function;\n"); } - // DLOPEN PATCH // Now write code to extract the parameters (this is super ugly) Modified: trunk/Source/Modules/ocaml.cxx =================================================================== --- trunk/Source/Modules/ocaml.cxx 2012-11-14 22:16:07 UTC (rev 13885) +++ trunk/Source/Modules/ocaml.cxx 2012-11-14 22:16:54 UTC (rev 13886) @@ -30,7 +30,7 @@ static int const_enum = 0; static int static_member_function = 0; static int generate_sizeof = 0; -static char *prefix = 0; +static String *prefix = 0; static char *ocaml_path = (char *) "ocaml"; static bool old_variable_names = false; static String *classname = 0; @@ -107,8 +107,7 @@ SWIG_exit(0); } else if (strcmp(argv[i], "-prefix") == 0) { if (argv[i + 1]) { - prefix = new char[strlen(argv[i + 1]) + 2]; - strcpy(prefix, argv[i + 1]); + prefix = NewString(argv[i + 1]); Swig_mark_arg(i); Swig_mark_arg(i + 1); i++; @@ -130,15 +129,14 @@ } } - // If a prefix has been specified make sure it ends in a '_' + // If a prefix has been specified make sure it ends in a '_' (not actually used!) if (prefix) { - if (prefix[strlen(prefix)] != '_') { - prefix[strlen(prefix) + 1] = 0; - prefix[strlen(prefix)] = '_'; - } + const char *px = Char(prefix); + if (px[Len(prefix)] != '_') + Printf(prefix, "_"); } else - prefix = (char *) "swig_"; + prefix = NewString("swig_"); // Add a symbol for this module Modified: trunk/Source/Modules/octave.cxx =================================================================== --- trunk/Source/Modules/octave.cxx 2012-11-14 22:16:07 UTC (rev 13885) +++ trunk/Source/Modules/octave.cxx 2012-11-14 22:16:54 UTC (rev 13886) @@ -524,7 +524,6 @@ } virtual int functionWrapper(Node *n) { - Wrapper *f = NewWrapper(); Parm *p; String *tm; int j; @@ -551,6 +550,7 @@ if (!overloaded || last_overload) process_autodoc(n); + Wrapper *f = NewWrapper(); Octave_begin_function(n, f->def, iname, overname, !overloaded); emit_parameter_variables(l, f); @@ -859,6 +859,8 @@ Delete(getwname); Delete(setwname); + DelWrapper(setf); + DelWrapper(getf); return SWIG_OK; } Modified: trunk/Source/Modules/php.cxx =================================================================== --- trunk/Source/Modules/php.cxx 2012-11-14 22:16:07 UTC (rev 13885) +++ trunk/Source/Modules/php.cxx 2012-11-14 22:16:54 UTC (rev 13886) @@ -2330,6 +2330,7 @@ Printf(f->code, "}\n"); Wrapper_print(f, s_wrappers); + DelWrapper(f); return SWIG_OK; } Modified: trunk/Source/Modules/r.cxx =================================================================== --- trunk/Source/Modules/r.cxx 2012-11-14 22:16:07 UTC (rev 13885) +++ trunk/Source/Modules/r.cxx 2012-11-14 22:16:54 UTC (rev 13886) @@ -726,6 +726,7 @@ Delete(rtype); Delete(rettype); Delete(funcparams); + DelWrapper(f); return funName; } Modified: trunk/Source/Modules/uffi.cxx =================================================================== --- trunk/Source/Modules/uffi.cxx 2012-11-14 22:16:07 UTC (rev 13885) +++ trunk/Source/Modules/uffi.cxx 2012-11-14 22:16:54 UTC (rev 13886) @@ -47,7 +47,7 @@ String **entries; } defined_foreign_types; -static const char *identifier_converter = "identifier-convert-null"; +static String *identifier_converter = NewString("identifier-convert-null"); static int any_varargs(ParmList *pl) { Parm *p; @@ -221,14 +221,15 @@ /* check for built-ins */ if (!strcmp(conv, "lispify")) { - identifier_converter = "identifier-convert-lispify"; + Delete(identifier_converter); + identifier_converter = NewString("identifier-convert-lispify"); } else if (!strcmp(conv, "null")) { - identifier_converter = "identifier-convert-null"; + Delete(identifier_converter); + identifier_converter = NewString("identifier-convert-null"); } else { /* Must be user defined */ - char *idconv = new char[strlen(conv) + 1]; - strcpy(idconv, conv); - identifier_converter = idconv; + Delete(identifier_converter); + identifier_converter = NewString(conv); } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wsf...@us...> - 2012-11-14 22:17:35
|
Revision: 13887 http://swig.svn.sourceforge.net/swig/?rev=13887&view=rev Author: wsfulton Date: 2012-11-14 22:17:28 +0000 (Wed, 14 Nov 2012) Log Message: ----------- Fix Coverity 'Uninitialized pointer fields' - member variables are now initialized Modified Paths: -------------- trunk/Source/Modules/csharp.cxx trunk/Source/Modules/d.cxx trunk/Source/Modules/java.cxx trunk/Source/Modules/lua.cxx trunk/Source/Modules/octave.cxx trunk/Source/Modules/ruby.cxx trunk/Source/Modules/s-exp.cxx trunk/Source/Modules/typepass.cxx Modified: trunk/Source/Modules/csharp.cxx =================================================================== --- trunk/Source/Modules/csharp.cxx 2012-11-14 22:16:54 UTC (rev 13886) +++ trunk/Source/Modules/csharp.cxx 2012-11-14 22:17:28 UTC (rev 13887) @@ -156,7 +156,9 @@ dmethods_seq(NULL), dmethods_table(NULL), n_dmethods(0), - n_directors(0) { + n_directors(0), + first_class_dmethod(0), + curr_class_dmethod(0) { /* for now, multiple inheritance in directors is disabled, this should be easy to implement though */ director_multiple_inheritance = 0; Modified: trunk/Source/Modules/d.cxx =================================================================== --- trunk/Source/Modules/d.cxx 2012-11-14 22:16:54 UTC (rev 13886) +++ trunk/Source/Modules/d.cxx 2012-11-14 22:17:28 UTC (rev 13887) @@ -25,7 +25,6 @@ const String *empty_string; const String *public_string; const String *protected_string; - const String *static_string; /* * Files and file sections containing C/C++ code. @@ -274,7 +273,9 @@ dmethods_seq(NULL), dmethods_table(NULL), n_dmethods(0), - unknown_types(NULL) { + unknown_types(NULL), + first_class_dmethod(0), + curr_class_dmethod(0) { // For now, multiple inheritance with directors is not possible. It should be // easy to implement though. Modified: trunk/Source/Modules/java.cxx =================================================================== --- trunk/Source/Modules/java.cxx 2012-11-14 22:16:54 UTC (rev 13886) +++ trunk/Source/Modules/java.cxx 2012-11-14 22:17:28 UTC (rev 13887) @@ -132,6 +132,7 @@ variable_name(NULL), proxy_class_constants_code(NULL), module_class_constants_code(NULL), + enum_code(NULL), package(NULL), jnipackage(NULL), package_path(NULL), @@ -151,7 +152,9 @@ dmethods_seq(NULL), dmethods_table(NULL), n_dmethods(0), - n_directors(0) { + n_directors(0), + first_class_dmethod(0), + curr_class_dmethod(0) { /* for now, multiple inheritance in directors is disabled, this should be easy to implement though */ director_multiple_inheritance = 0; Modified: trunk/Source/Modules/lua.cxx =================================================================== --- trunk/Source/Modules/lua.cxx 2012-11-14 22:16:54 UTC (rev 13886) +++ trunk/Source/Modules/lua.cxx 2012-11-14 22:17:28 UTC (rev 13887) @@ -145,17 +145,29 @@ * Initialize member data * --------------------------------------------------------------------- */ - LUA() { - f_begin = 0; - f_runtime = 0; - f_header = 0; - f_wrappers = 0; - f_init = 0; - f_initbeforefunc = 0; - PrefixPlusUnderscore = 0; - - s_cmd_tab = s_var_tab = s_const_tab = s_luacode = 0; - current=NO_CPP; + LUA() : + f_begin(0), + f_runtime(0), + f_header(0), + f_wrappers(0), + f_init(0), + f_initbeforefunc(0), + PrefixPlusUnderscore(0), + s_cmd_tab(0), + s_var_tab(0), + s_const_tab(0), + s_methods_tab(0), + s_attr_tab(0), + s_luacode(0), + s_dot_get(0), + s_dot_set(0), + s_vars_meta_tab(0), + have_constructor(0), + have_destructor(0), + destructor_action(0), + class_name(0), + constructor_name(0), + current(NO_CPP) { } /* NEW LANGUAGE NOTE:*********************************************** Modified: trunk/Source/Modules/octave.cxx =================================================================== --- trunk/Source/Modules/octave.cxx 2012-11-14 22:16:54 UTC (rev 13886) +++ trunk/Source/Modules/octave.cxx 2012-11-14 22:17:28 UTC (rev 13887) @@ -58,9 +58,24 @@ } public: - OCTAVE():f_begin(0), f_runtime(0), f_header(0), f_doc(0), f_wrappers(0), - f_init(0), f_initbeforefunc(0), f_directors(0), f_directors_h(0), - s_global_tab(0), s_members_tab(0), class_name(0) { + OCTAVE(): + f_begin(0), + f_runtime(0), + f_header(0), + f_doc(0), + f_wrappers(0), + f_init(0), + f_initbeforefunc(0), + f_directors(0), + f_directors_h(0), + s_global_tab(0), + s_members_tab(0), + class_name(0), + have_constructor(0), + have_destructor(0), + constructor_name(0), + docs(0) + { /* Add code to manage protected constructors and directors */ director_prot_ctor_code = NewString(""); Printv(director_prot_ctor_code, Modified: trunk/Source/Modules/ruby.cxx =================================================================== --- trunk/Source/Modules/ruby.cxx 2012-11-14 22:16:54 UTC (rev 13886) +++ trunk/Source/Modules/ruby.cxx 2012-11-14 22:17:28 UTC (rev 13887) @@ -810,34 +810,38 @@ * * Initialize member data * --------------------------------------------------------------------- */ + RUBY() : + module(0), + modvar(0), + feature(0), + prefix(0), + current(0), + classes(0), + klass(0), + special_methods(0), + f_directors(0), + f_directors_h(0), + f_directors_helpers(0), + f_begin(0), + f_runtime(0), + f_runtime_h(0), + f_header(0), + f_wrappers(0), + f_init(0), + f_initbeforefunc(0), + useGlobalModule(false), + multipleInheritance(false) { + last_autodoc = NewString(""); + current = NO_CPP; + director_prot_ctor_code = NewString(""); + Printv(director_prot_ctor_code, + "if ( $comparison ) { /* subclassed */\n", + " $director_new \n", + "} else {\n", " rb_raise(rb_eRuntimeError,\"accessing abstract class or protected constructor\"); \n", " return Qnil;\n", "}\n", NIL); + director_multiple_inheritance = 0; + director_language = 1; + } - RUBY() { - module = 0; - modvar = 0; - feature = 0; - prefix = 0; - last_autodoc = NewString(""); - current = NO_CPP; - classes = 0; - klass = 0; - special_methods = 0; - f_begin = 0; - f_runtime = 0; - f_header = 0; - f_wrappers = 0; - f_init = 0; - f_initbeforefunc = 0; - useGlobalModule = false; - multipleInheritance = false; - director_prot_ctor_code = NewString(""); - Printv(director_prot_ctor_code, - "if ( $comparison ) { /* subclassed */\n", - " $director_new \n", - "} else {\n", " rb_raise(rb_eRuntimeError,\"accessing abstract class or protected constructor\"); \n", " return Qnil;\n", "}\n", NIL); - director_multiple_inheritance = 0; - director_language = 1; - } - /* --------------------------------------------------------------------- * main() * Modified: trunk/Source/Modules/s-exp.cxx =================================================================== --- trunk/Source/Modules/s-exp.cxx 2012-11-14 22:16:54 UTC (rev 13886) +++ trunk/Source/Modules/s-exp.cxx 2012-11-14 22:17:28 UTC (rev 13887) @@ -24,9 +24,21 @@ static File *out = 0; class Sexp:public Language { + int indent_level; + DOHHash *print_circle_hash; + int print_circle_count; + int hanging_parens; + bool need_whitespace; + bool need_newline; + public: - int indent_level; - Sexp():indent_level(0) { + Sexp(): + indent_level(0), + print_circle_hash(0), + print_circle_count(0), + hanging_parens(0), + need_whitespace(0), + need_newline(0) { } virtual ~ Sexp() { @@ -51,12 +63,6 @@ } } - DOHHash *print_circle_hash; - int print_circle_count; - int hanging_parens; - bool need_whitespace; - bool need_newline; - /* Top of the parse tree */ virtual int top(Node *n) { if (out == 0) { Modified: trunk/Source/Modules/typepass.cxx =================================================================== --- trunk/Source/Modules/typepass.cxx 2012-11-14 22:16:54 UTC (rev 13886) +++ trunk/Source/Modules/typepass.cxx 2012-11-14 22:17:28 UTC (rev 13887) @@ -40,7 +40,14 @@ Hash *classhash; List *normalize; - TypePass() { + TypePass() : + inclass(0), + module(0), + importmode(0), + nsname(0), + nssymname(0), + classhash(0), + normalize(0) { } /* Normalize a type. Replaces type with fully qualified version */ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wsf...@us...> - 2012-11-14 22:48:17
|
Revision: 13889 http://swig.svn.sourceforge.net/swig/?rev=13889&view=rev Author: wsfulton Date: 2012-11-14 22:48:09 +0000 (Wed, 14 Nov 2012) Log Message: ----------- Minor warning fixes Modified Paths: -------------- trunk/Source/Modules/d.cxx trunk/Source/Modules/typepass.cxx Modified: trunk/Source/Modules/d.cxx =================================================================== --- trunk/Source/Modules/d.cxx 2012-11-14 22:17:52 UTC (rev 13888) +++ trunk/Source/Modules/d.cxx 2012-11-14 22:48:09 UTC (rev 13889) @@ -273,9 +273,9 @@ dmethods_seq(NULL), dmethods_table(NULL), n_dmethods(0), - unknown_types(NULL), first_class_dmethod(0), - curr_class_dmethod(0) { + curr_class_dmethod(0), + unknown_types(NULL) { // For now, multiple inheritance with directors is not possible. It should be // easy to implement though. Modified: trunk/Source/Modules/typepass.cxx =================================================================== --- trunk/Source/Modules/typepass.cxx 2012-11-14 22:17:52 UTC (rev 13888) +++ trunk/Source/Modules/typepass.cxx 2012-11-14 22:48:09 UTC (rev 13889) @@ -717,7 +717,7 @@ * destructorDeclaration() * ------------------------------------------------------------ */ - virtual int destructorDeclaration(Node *n) { + virtual int destructorDeclaration(Node *) { return SWIG_OK; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wsf...@us...> - 2012-11-19 19:44:58
|
Revision: 13912 http://swig.svn.sourceforge.net/swig/?rev=13912&view=rev Author: wsfulton Date: 2012-11-19 19:44:48 +0000 (Mon, 19 Nov 2012) Log Message: ----------- Fix unnecessary and inconsistent null pointer checks Modified Paths: -------------- trunk/Source/Modules/csharp.cxx trunk/Source/Modules/d.cxx trunk/Source/Modules/java.cxx Modified: trunk/Source/Modules/csharp.cxx =================================================================== --- trunk/Source/Modules/csharp.cxx 2012-11-19 19:43:24 UTC (rev 13911) +++ trunk/Source/Modules/csharp.cxx 2012-11-19 19:44:48 UTC (rev 13912) @@ -3472,7 +3472,7 @@ Wrapper *w = NewWrapper(); ParmList *l = Getattr(n, "parms"); bool is_void = !(Cmp(returntype, "void")); - String *qualified_return = NewString(""); + String *qualified_return = 0; bool pure_virtual = (!(Cmp(storage, "virtual")) && !(Cmp(value, "0"))); int status = SWIG_OK; bool output_director = true; @@ -3496,88 +3496,84 @@ imclass_dmethod = NewStringf("SwigDirector_%s", Swig_name_member(getNSpace(), classname, overloaded_name)); - if (returntype) { + qualified_return = SwigType_rcaststr(returntype, "c_result"); - Delete(qualified_return); - qualified_return = SwigType_rcaststr(returntype, "c_result"); + if (!is_void && !ignored_method) { + if (!SwigType_isclass(returntype)) { + if (!(SwigType_ispointer(returntype) || SwigType_isreference(returntype))) { + String *construct_result = NewStringf("= SwigValueInit< %s >()", SwigType_lstr(returntype, 0)); + Wrapper_add_localv(w, "c_result", SwigType_lstr(returntype, "c_result"), construct_result, NIL); + Delete(construct_result); + } else { + String *base_typename = SwigType_base(returntype); + String *resolved_typename = SwigType_typedef_resolve_all(base_typename); + Symtab *symtab = Getattr(n, "sym:symtab"); + Node *typenode = Swig_symbol_clookup(resolved_typename, symtab); - if (!is_void && !ignored_method) { - if (!SwigType_isclass(returntype)) { - if (!(SwigType_ispointer(returntype) || SwigType_isreference(returntype))) { - String *construct_result = NewStringf("= SwigValueInit< %s >()", SwigType_lstr(returntype, 0)); - Wrapper_add_localv(w, "c_result", SwigType_lstr(returntype, "c_result"), construct_result, NIL); - Delete(construct_result); + if (SwigType_ispointer(returntype) || (typenode && Getattr(typenode, "abstract"))) { + /* initialize pointers to something sane. Same for abstract + classes when a reference is returned. */ + Wrapper_add_localv(w, "c_result", SwigType_lstr(returntype, "c_result"), "= 0", NIL); } else { - String *base_typename = SwigType_base(returntype); - String *resolved_typename = SwigType_typedef_resolve_all(base_typename); - Symtab *symtab = Getattr(n, "sym:symtab"); - Node *typenode = Swig_symbol_clookup(resolved_typename, symtab); + /* If returning a reference, initialize the pointer to a sane + default - if a C# exception occurs, then the pointer returns + something other than a NULL-initialized reference. */ + String *non_ref_type = Copy(returntype); - if (SwigType_ispointer(returntype) || (typenode && Getattr(typenode, "abstract"))) { - /* initialize pointers to something sane. Same for abstract - classes when a reference is returned. */ - Wrapper_add_localv(w, "c_result", SwigType_lstr(returntype, "c_result"), "= 0", NIL); - } else { - /* If returning a reference, initialize the pointer to a sane - default - if a C# exception occurs, then the pointer returns - something other than a NULL-initialized reference. */ - String *non_ref_type = Copy(returntype); + /* Remove reference and const qualifiers */ + Replaceall(non_ref_type, "r.", ""); + Replaceall(non_ref_type, "q(const).", ""); + Wrapper_add_localv(w, "result_default", "static", SwigType_str(non_ref_type, "result_default"), "=", SwigType_str(non_ref_type, "()"), NIL); + Wrapper_add_localv(w, "c_result", SwigType_lstr(returntype, "c_result"), "= &result_default", NIL); - /* Remove reference and const qualifiers */ - Replaceall(non_ref_type, "r.", ""); - Replaceall(non_ref_type, "q(const).", ""); - Wrapper_add_localv(w, "result_default", "static", SwigType_str(non_ref_type, "result_default"), "=", SwigType_str(non_ref_type, "()"), NIL); - Wrapper_add_localv(w, "c_result", SwigType_lstr(returntype, "c_result"), "= &result_default", NIL); + Delete(non_ref_type); + } - Delete(non_ref_type); - } + Delete(base_typename); + Delete(resolved_typename); + } + } else { + SwigType *vt; - Delete(base_typename); - Delete(resolved_typename); - } + vt = cplus_value_type(returntype); + if (!vt) { + Wrapper_add_localv(w, "c_result", SwigType_lstr(returntype, "c_result"), NIL); } else { - SwigType *vt; - - vt = cplus_value_type(returntype); - if (!vt) { - Wrapper_add_localv(w, "c_result", SwigType_lstr(returntype, "c_result"), NIL); - } else { - Wrapper_add_localv(w, "c_result", SwigType_lstr(vt, "c_result"), NIL); - Delete(vt); - } + Wrapper_add_localv(w, "c_result", SwigType_lstr(vt, "c_result"), NIL); + Delete(vt); } } + } - /* Create the intermediate class wrapper */ - tm = Swig_typemap_lookup("imtype", n, "", 0); - if (tm) { - String *imtypeout = Getattr(n, "tmap:imtype:out"); // the type in the imtype typemap's out attribute overrides the type in the typemap - if (imtypeout) - tm = imtypeout; - const String *im_directoroutattributes = Getattr(n, "tmap:imtype:directoroutattributes"); - if (im_directoroutattributes) { - Printf(callback_def, " %s\n", im_directoroutattributes); - Printf(director_delegate_definitions, " %s\n", im_directoroutattributes); - } - - Printf(callback_def, " private %s SwigDirector%s(", tm, overloaded_name); - if (!ignored_method) - Printf(director_delegate_definitions, " public delegate %s", tm); - } else { - Swig_warning(WARN_CSHARP_TYPEMAP_CSTYPE_UNDEF, input_file, line_number, "No imtype typemap defined for %s\n", SwigType_str(returntype, 0)); + /* Create the intermediate class wrapper */ + tm = Swig_typemap_lookup("imtype", n, "", 0); + if (tm) { + String *imtypeout = Getattr(n, "tmap:imtype:out"); // the type in the imtype typemap's out attribute overrides the type in the typemap + if (imtypeout) + tm = imtypeout; + const String *im_directoroutattributes = Getattr(n, "tmap:imtype:directoroutattributes"); + if (im_directoroutattributes) { + Printf(callback_def, " %s\n", im_directoroutattributes); + Printf(director_delegate_definitions, " %s\n", im_directoroutattributes); } - if ((c_ret_type = Swig_typemap_lookup("ctype", n, "", 0))) { - if (!is_void && !ignored_method) { - String *jretval_decl = NewStringf("%s jresult", c_ret_type); - Wrapper_add_localv(w, "jresult", jretval_decl, "= 0", NIL); - Delete(jretval_decl); - } - } else { - Swig_warning(WARN_CSHARP_TYPEMAP_CTYPE_UNDEF, input_file, line_number, "No ctype typemap defined for %s for use in %s::%s (skipping director method)\n", - SwigType_str(returntype, 0), SwigType_namestr(c_classname), SwigType_namestr(name)); - output_director = false; + Printf(callback_def, " private %s SwigDirector%s(", tm, overloaded_name); + if (!ignored_method) + Printf(director_delegate_definitions, " public delegate %s", tm); + } else { + Swig_warning(WARN_CSHARP_TYPEMAP_CSTYPE_UNDEF, input_file, line_number, "No imtype typemap defined for %s\n", SwigType_str(returntype, 0)); + } + + if ((c_ret_type = Swig_typemap_lookup("ctype", n, "", 0))) { + if (!is_void && !ignored_method) { + String *jretval_decl = NewStringf("%s jresult", c_ret_type); + Wrapper_add_localv(w, "jresult", jretval_decl, "= 0", NIL); + Delete(jretval_decl); } + } else { + Swig_warning(WARN_CSHARP_TYPEMAP_CTYPE_UNDEF, input_file, line_number, "No ctype typemap defined for %s for use in %s::%s (skipping director method)\n", + SwigType_str(returntype, 0), SwigType_namestr(c_classname), SwigType_namestr(name)); + output_director = false; } Swig_director_parms_fixup(l); Modified: trunk/Source/Modules/d.cxx =================================================================== --- trunk/Source/Modules/d.cxx 2012-11-19 19:43:24 UTC (rev 13911) +++ trunk/Source/Modules/d.cxx 2012-11-19 19:44:48 UTC (rev 13912) @@ -1945,7 +1945,7 @@ Wrapper *w = NewWrapper(); ParmList *l = Getattr(n, "parms"); bool is_void = !(Cmp(returntype, "void")); - String *qualified_return = NewString(""); + String *qualified_return = 0; bool pure_virtual = (!(Cmp(storage, "virtual")) && !(Cmp(value, "0"))); int status = SWIG_OK; bool output_director = true; @@ -1968,87 +1968,84 @@ // we're consistent with the sym:overload name in functionWrapper. (?? when // does the overloaded method name get set?) - imclass_dmethod = NewStringf("SwigDirector_%s", - Swig_name_member(getNSpace(), classname, overloaded_name)); + imclass_dmethod = NewStringf("SwigDirector_%s", Swig_name_member(getNSpace(), classname, overloaded_name)); - if (returntype) { - qualified_return = SwigType_rcaststr(returntype, "c_result"); + qualified_return = SwigType_rcaststr(returntype, "c_result"); - if (!is_void && !ignored_method) { - if (!SwigType_isclass(returntype)) { - if (!(SwigType_ispointer(returntype) || SwigType_isreference(returntype))) { - String *construct_result = NewStringf("= SwigValueInit< %s >()", SwigType_lstr(returntype, 0)); - Wrapper_add_localv(w, "c_result", SwigType_lstr(returntype, "c_result"), construct_result, NIL); - Delete(construct_result); + if (!is_void && !ignored_method) { + if (!SwigType_isclass(returntype)) { + if (!(SwigType_ispointer(returntype) || SwigType_isreference(returntype))) { + String *construct_result = NewStringf("= SwigValueInit< %s >()", SwigType_lstr(returntype, 0)); + Wrapper_add_localv(w, "c_result", SwigType_lstr(returntype, "c_result"), construct_result, NIL); + Delete(construct_result); + } else { + String *base_typename = SwigType_base(returntype); + String *resolved_typename = SwigType_typedef_resolve_all(base_typename); + Symtab *symtab = Getattr(n, "sym:symtab"); + Node *typenode = Swig_symbol_clookup(resolved_typename, symtab); + + if (SwigType_ispointer(returntype) || (typenode && Getattr(typenode, "abstract"))) { + /* initialize pointers to something sane. Same for abstract + classes when a reference is returned. */ + Wrapper_add_localv(w, "c_result", SwigType_lstr(returntype, "c_result"), "= 0", NIL); } else { - String *base_typename = SwigType_base(returntype); - String *resolved_typename = SwigType_typedef_resolve_all(base_typename); - Symtab *symtab = Getattr(n, "sym:symtab"); - Node *typenode = Swig_symbol_clookup(resolved_typename, symtab); + /* If returning a reference, initialize the pointer to a sane + default - if a D exception occurs, then the pointer returns + something other than a NULL-initialized reference. */ + String *non_ref_type = Copy(returntype); - if (SwigType_ispointer(returntype) || (typenode && Getattr(typenode, "abstract"))) { - /* initialize pointers to something sane. Same for abstract - classes when a reference is returned. */ - Wrapper_add_localv(w, "c_result", SwigType_lstr(returntype, "c_result"), "= 0", NIL); - } else { - /* If returning a reference, initialize the pointer to a sane - default - if a D exception occurs, then the pointer returns - something other than a NULL-initialized reference. */ - String *non_ref_type = Copy(returntype); + /* Remove reference and const qualifiers */ + Replaceall(non_ref_type, "r.", ""); + Replaceall(non_ref_type, "q(const).", ""); + Wrapper_add_localv(w, "result_default", "static", SwigType_str(non_ref_type, "result_default"), "=", SwigType_str(non_ref_type, "()"), NIL); + Wrapper_add_localv(w, "c_result", SwigType_lstr(returntype, "c_result"), "= &result_default", NIL); - /* Remove reference and const qualifiers */ - Replaceall(non_ref_type, "r.", ""); - Replaceall(non_ref_type, "q(const).", ""); - Wrapper_add_localv(w, "result_default", "static", SwigType_str(non_ref_type, "result_default"), "=", SwigType_str(non_ref_type, "()"), NIL); - Wrapper_add_localv(w, "c_result", SwigType_lstr(returntype, "c_result"), "= &result_default", NIL); + Delete(non_ref_type); + } - Delete(non_ref_type); - } + Delete(base_typename); + Delete(resolved_typename); + } + } else { + SwigType *vt; - Delete(base_typename); - Delete(resolved_typename); - } + vt = cplus_value_type(returntype); + if (!vt) { + Wrapper_add_localv(w, "c_result", SwigType_lstr(returntype, "c_result"), NIL); } else { - SwigType *vt; - - vt = cplus_value_type(returntype); - if (!vt) { - Wrapper_add_localv(w, "c_result", SwigType_lstr(returntype, "c_result"), NIL); - } else { - Wrapper_add_localv(w, "c_result", SwigType_lstr(vt, "c_result"), NIL); - Delete(vt); - } + Wrapper_add_localv(w, "c_result", SwigType_lstr(vt, "c_result"), NIL); + Delete(vt); } } + } - /* Create the intermediate class wrapper */ - tm = lookupDTypemap(n, "imtype"); - if (tm) { - String *imtypeout = Getattr(n, "tmap:imtype:out"); - if (imtypeout) { - // The type in the imtype typemap's out attribute overrides the type - // in the typemap. - tm = imtypeout; - } - Printf(callback_def, "\nprivate extern(C) %s swigDirectorCallback_%s_%s(void* dObject", tm, classname, overloaded_name); - Printv(proxy_callback_return_type, tm, NIL); - } else { - Swig_warning(WARN_D_TYPEMAP_IMTYPE_UNDEF, input_file, line_number, - "No imtype typemap defined for %s\n", SwigType_str(returntype, 0)); + /* Create the intermediate class wrapper */ + tm = lookupDTypemap(n, "imtype"); + if (tm) { + String *imtypeout = Getattr(n, "tmap:imtype:out"); + if (imtypeout) { + // The type in the imtype typemap's out attribute overrides the type + // in the typemap. + tm = imtypeout; } + Printf(callback_def, "\nprivate extern(C) %s swigDirectorCallback_%s_%s(void* dObject", tm, classname, overloaded_name); + Printv(proxy_callback_return_type, tm, NIL); + } else { + Swig_warning(WARN_D_TYPEMAP_IMTYPE_UNDEF, input_file, line_number, + "No imtype typemap defined for %s\n", SwigType_str(returntype, 0)); + } - if ((c_ret_type = Swig_typemap_lookup("ctype", n, "", 0))) { - if (!is_void && !ignored_method) { - String *jretval_decl = NewStringf("%s jresult", c_ret_type); - Wrapper_add_localv(w, "jresult", jretval_decl, "= 0", NIL); - Delete(jretval_decl); - } - } else { - Swig_warning(WARN_D_TYPEMAP_CTYPE_UNDEF, input_file, line_number, - "No ctype typemap defined for %s for use in %s::%s (skipping director method)\n", - SwigType_str(returntype, 0), SwigType_namestr(c_classname), SwigType_namestr(name)); - output_director = false; + if ((c_ret_type = Swig_typemap_lookup("ctype", n, "", 0))) { + if (!is_void && !ignored_method) { + String *jretval_decl = NewStringf("%s jresult", c_ret_type); + Wrapper_add_localv(w, "jresult", jretval_decl, "= 0", NIL); + Delete(jretval_decl); } + } else { + Swig_warning(WARN_D_TYPEMAP_CTYPE_UNDEF, input_file, line_number, + "No ctype typemap defined for %s for use in %s::%s (skipping director method)\n", + SwigType_str(returntype, 0), SwigType_namestr(c_classname), SwigType_namestr(name)); + output_director = false; } Swig_director_parms_fixup(l); Modified: trunk/Source/Modules/java.cxx =================================================================== --- trunk/Source/Modules/java.cxx 2012-11-19 19:43:24 UTC (rev 13911) +++ trunk/Source/Modules/java.cxx 2012-11-19 19:44:48 UTC (rev 13912) @@ -3536,7 +3536,7 @@ Wrapper *w = NewWrapper(); ParmList *l = Getattr(n, "parms"); bool is_void = !(Cmp(returntype, "void")); - String *qualified_return = NewString(""); + String *qualified_return = 0; bool pure_virtual = (!(Cmp(storage, "virtual")) && !(Cmp(value, "0"))); int status = SWIG_OK; bool output_director = true; @@ -3567,126 +3567,122 @@ imclass_dmethod = NewStringf("SwigDirector_%s", Swig_name_member(getNSpace(), classname, overloaded_name)); - if (returntype) { + qualified_return = SwigType_rcaststr(returntype, "c_result"); - Delete(qualified_return); - qualified_return = SwigType_rcaststr(returntype, "c_result"); + if (!is_void && (!ignored_method || pure_virtual)) { + if (!SwigType_isclass(returntype)) { + if (!(SwigType_ispointer(returntype) || SwigType_isreference(returntype))) { + String *construct_result = NewStringf("= SwigValueInit< %s >()", SwigType_lstr(returntype, 0)); + Wrapper_add_localv(w, "c_result", SwigType_lstr(returntype, "c_result"), construct_result, NIL); + Delete(construct_result); + } else { + String *base_typename = SwigType_base(returntype); + String *resolved_typename = SwigType_typedef_resolve_all(base_typename); + Symtab *symtab = Getattr(n, "sym:symtab"); + Node *typenode = Swig_symbol_clookup(resolved_typename, symtab); - if (!is_void && (!ignored_method || pure_virtual)) { - if (!SwigType_isclass(returntype)) { - if (!(SwigType_ispointer(returntype) || SwigType_isreference(returntype))) { - String *construct_result = NewStringf("= SwigValueInit< %s >()", SwigType_lstr(returntype, 0)); - Wrapper_add_localv(w, "c_result", SwigType_lstr(returntype, "c_result"), construct_result, NIL); - Delete(construct_result); + if (SwigType_ispointer(returntype) || (typenode && Getattr(typenode, "abstract"))) { + /* initialize pointers to something sane. Same for abstract + classes when a reference is returned. */ + Wrapper_add_localv(w, "c_result", SwigType_lstr(returntype, "c_result"), "= 0", NIL); } else { - String *base_typename = SwigType_base(returntype); - String *resolved_typename = SwigType_typedef_resolve_all(base_typename); - Symtab *symtab = Getattr(n, "sym:symtab"); - Node *typenode = Swig_symbol_clookup(resolved_typename, symtab); + /* If returning a reference, initialize the pointer to a sane + default - if a Java exception occurs, then the pointer returns + something other than a NULL-initialized reference. */ + String *non_ref_type = Copy(returntype); - if (SwigType_ispointer(returntype) || (typenode && Getattr(typenode, "abstract"))) { - /* initialize pointers to something sane. Same for abstract - classes when a reference is returned. */ - Wrapper_add_localv(w, "c_result", SwigType_lstr(returntype, "c_result"), "= 0", NIL); - } else { - /* If returning a reference, initialize the pointer to a sane - default - if a Java exception occurs, then the pointer returns - something other than a NULL-initialized reference. */ - String *non_ref_type = Copy(returntype); + /* Remove reference and const qualifiers */ + Replaceall(non_ref_type, "r.", ""); + Replaceall(non_ref_type, "q(const).", ""); + Wrapper_add_localv(w, "result_default", "static", SwigType_str(non_ref_type, "result_default"), "=", SwigType_str(non_ref_type, "()"), NIL); + Wrapper_add_localv(w, "c_result", SwigType_lstr(returntype, "c_result"), "= &result_default", NIL); - /* Remove reference and const qualifiers */ - Replaceall(non_ref_type, "r.", ""); - Replaceall(non_ref_type, "q(const).", ""); - Wrapper_add_localv(w, "result_default", "static", SwigType_str(non_ref_type, "result_default"), "=", SwigType_str(non_ref_type, "()"), NIL); - Wrapper_add_localv(w, "c_result", SwigType_lstr(returntype, "c_result"), "= &result_default", NIL); + Delete(non_ref_type); + } - Delete(non_ref_type); - } + Delete(base_typename); + Delete(resolved_typename); + } + } else { + SwigType *vt; - Delete(base_typename); - Delete(resolved_typename); - } + vt = cplus_value_type(returntype); + if (!vt) { + Wrapper_add_localv(w, "c_result", SwigType_lstr(returntype, "c_result"), NIL); } else { - SwigType *vt; - - vt = cplus_value_type(returntype); - if (!vt) { - Wrapper_add_localv(w, "c_result", SwigType_lstr(returntype, "c_result"), NIL); - } else { - Wrapper_add_localv(w, "c_result", SwigType_lstr(vt, "c_result"), NIL); - Delete(vt); - } + Wrapper_add_localv(w, "c_result", SwigType_lstr(vt, "c_result"), NIL); + Delete(vt); } } + } - /* Create the intermediate class wrapper */ - tm = Swig_typemap_lookup("jtype", n, "", 0); - if (tm) { - Printf(callback_def, " public static %s %s(%s self", tm, imclass_dmethod, qualified_classname); - } else { - Swig_warning(WARN_JAVA_TYPEMAP_JTYPE_UNDEF, input_file, line_number, "No jtype typemap defined for %s\n", SwigType_str(returntype, 0)); - } + /* Create the intermediate class wrapper */ + tm = Swig_typemap_lookup("jtype", n, "", 0); + if (tm) { + Printf(callback_def, " public static %s %s(%s self", tm, imclass_dmethod, qualified_classname); + } else { + Swig_warning(WARN_JAVA_TYPEMAP_JTYPE_UNDEF, input_file, line_number, "No jtype typemap defined for %s\n", SwigType_str(returntype, 0)); + } - String *cdesc = NULL; - SwigType *covariant = Getattr(n, "covariant"); - SwigType *adjustedreturntype = covariant ? covariant : returntype; - Parm *adjustedreturntypeparm = NewParmNode(adjustedreturntype, n); + String *cdesc = NULL; + SwigType *covariant = Getattr(n, "covariant"); + SwigType *adjustedreturntype = covariant ? covariant : returntype; + Parm *adjustedreturntypeparm = NewParmNode(adjustedreturntype, n); - if ((tm = Swig_typemap_lookup("directorin", adjustedreturntypeparm, "", 0)) - && (cdesc = Getattr(adjustedreturntypeparm, "tmap:directorin:descriptor"))) { + if ((tm = Swig_typemap_lookup("directorin", adjustedreturntypeparm, "", 0)) + && (cdesc = Getattr(adjustedreturntypeparm, "tmap:directorin:descriptor"))) { - // Note that in the case of polymorphic (covariant) return types, the - // method's return type is changed to be the base of the C++ return - // type - String *jnidesc_canon = canonicalizeJNIDescriptor(cdesc, adjustedreturntypeparm); - Append(classret_desc, jnidesc_canon); - Delete(jnidesc_canon); - } else { - Swig_warning(WARN_TYPEMAP_DIRECTORIN_UNDEF, input_file, line_number, "No or improper directorin typemap defined for %s for use in %s::%s (skipping director method)\n", - SwigType_str(returntype, 0), SwigType_namestr(c_classname), SwigType_namestr(name)); - output_director = false; - } + // Note that in the case of polymorphic (covariant) return types, the + // method's return type is changed to be the base of the C++ return + // type + String *jnidesc_canon = canonicalizeJNIDescriptor(cdesc, adjustedreturntypeparm); + Append(classret_desc, jnidesc_canon); + Delete(jnidesc_canon); + } else { + Swig_warning(WARN_TYPEMAP_DIRECTORIN_UNDEF, input_file, line_number, "No or improper directorin typemap defined for %s for use in %s::%s (skipping director method)\n", + SwigType_str(returntype, 0), SwigType_namestr(c_classname), SwigType_namestr(name)); + output_director = false; + } - /* Get the JNI field descriptor for this return type, add the JNI field descriptor - to jniret_desc */ - if ((c_ret_type = Swig_typemap_lookup("jni", n, "", 0))) { - Parm *tp = NewParmNode(c_ret_type, n); + /* Get the JNI field descriptor for this return type, add the JNI field descriptor + to jniret_desc */ + if ((c_ret_type = Swig_typemap_lookup("jni", n, "", 0))) { + Parm *tp = NewParmNode(c_ret_type, n); - if (!is_void && !ignored_method) { - String *jretval_decl = NewStringf("%s jresult", c_ret_type); - Wrapper_add_localv(w, "jresult", jretval_decl, "= 0", NIL); - Delete(jretval_decl); - } + if (!is_void && !ignored_method) { + String *jretval_decl = NewStringf("%s jresult", c_ret_type); + Wrapper_add_localv(w, "jresult", jretval_decl, "= 0", NIL); + Delete(jretval_decl); + } - String *jdesc = NULL; - if ((tm = Swig_typemap_lookup("directorin", tp, "", 0)) - && (jdesc = Getattr(tp, "tmap:directorin:descriptor"))) { + String *jdesc = NULL; + if ((tm = Swig_typemap_lookup("directorin", tp, "", 0)) + && (jdesc = Getattr(tp, "tmap:directorin:descriptor"))) { - // Objects marshalled passing a Java class across JNI boundary use jobject - the nouse flag indicates this - // We need the specific Java class name instead of the generic 'Ljava/lang/Object;' - if (GetFlag(tp, "tmap:directorin:nouse")) - jdesc = cdesc; - String *jnidesc_canon = canonicalizeJNIDescriptor(jdesc, tp); - Append(jniret_desc, jnidesc_canon); - Delete(jnidesc_canon); - } else { - Swig_warning(WARN_TYPEMAP_DIRECTORIN_UNDEF, input_file, line_number, - "No or improper directorin typemap defined for %s for use in %s::%s (skipping director method)\n", - SwigType_str(c_ret_type, 0), SwigType_namestr(c_classname), SwigType_namestr(name)); - output_director = false; - } - - Delete(tp); + // Objects marshalled passing a Java class across JNI boundary use jobject - the nouse flag indicates this + // We need the specific Java class name instead of the generic 'Ljava/lang/Object;' + if (GetFlag(tp, "tmap:directorin:nouse")) + jdesc = cdesc; + String *jnidesc_canon = canonicalizeJNIDescriptor(jdesc, tp); + Append(jniret_desc, jnidesc_canon); + Delete(jnidesc_canon); } else { - Swig_warning(WARN_JAVA_TYPEMAP_JNI_UNDEF, input_file, line_number, "No jni typemap defined for %s for use in %s::%s (skipping director method)\n", - SwigType_str(returntype, 0), SwigType_namestr(c_classname), SwigType_namestr(name)); + Swig_warning(WARN_TYPEMAP_DIRECTORIN_UNDEF, input_file, line_number, + "No or improper directorin typemap defined for %s for use in %s::%s (skipping director method)\n", + SwigType_str(c_ret_type, 0), SwigType_namestr(c_classname), SwigType_namestr(name)); output_director = false; } - Delete(adjustedreturntypeparm); - Delete(qualified_classname); + Delete(tp); + } else { + Swig_warning(WARN_JAVA_TYPEMAP_JNI_UNDEF, input_file, line_number, "No jni typemap defined for %s for use in %s::%s (skipping director method)\n", + SwigType_str(returntype, 0), SwigType_namestr(c_classname), SwigType_namestr(name)); + output_director = false; } + Delete(adjustedreturntypeparm); + Delete(qualified_classname); + Swig_director_parms_fixup(l); /* Attach the standard typemaps */ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wsf...@us...> - 2012-11-19 19:46:28
|
Revision: 13913 http://swig.svn.sourceforge.net/swig/?rev=13913&view=rev Author: wsfulton Date: 2012-11-19 19:46:21 +0000 (Mon, 19 Nov 2012) Log Message: ----------- Correctly handle errors if language symbol already exists Modified Paths: -------------- trunk/Source/Modules/csharp.cxx trunk/Source/Modules/java.cxx Modified: trunk/Source/Modules/csharp.cxx =================================================================== --- trunk/Source/Modules/csharp.cxx 2012-11-19 19:44:48 UTC (rev 13912) +++ trunk/Source/Modules/csharp.cxx 2012-11-19 19:46:21 UTC (rev 13913) @@ -361,8 +361,10 @@ } // module class and intermediary classes are always created - addSymbol(imclass_name, n); - addSymbol(module_class_name, n); + if (!addSymbol(imclass_name, n)) + return SWIG_ERROR; + if (!addSymbol(module_class_name, n)) + return SWIG_ERROR; imclass_class_code = NewString(""); proxy_class_def = NewString(""); Modified: trunk/Source/Modules/java.cxx =================================================================== --- trunk/Source/Modules/java.cxx 2012-11-19 19:44:48 UTC (rev 13912) +++ trunk/Source/Modules/java.cxx 2012-11-19 19:46:21 UTC (rev 13913) @@ -374,8 +374,10 @@ constants_interface_name = NewStringf("%sConstants", module_class_name); // module class and intermediary classes are always created - addSymbol(imclass_name, n); - addSymbol(module_class_name, n); + if (!addSymbol(imclass_name, n)) + return SWIG_ERROR; + if (!addSymbol(module_class_name, n)) + return SWIG_ERROR; imclass_class_code = NewString(""); proxy_class_def = NewString(""); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wsf...@us...> - 2012-11-19 19:47:56
|
Revision: 13914 http://swig.svn.sourceforge.net/swig/?rev=13914&view=rev Author: wsfulton Date: 2012-11-19 19:47:48 +0000 (Mon, 19 Nov 2012) Log Message: ----------- Fix obvious copy/paste errors in some director code Modified Paths: -------------- trunk/Source/Modules/csharp.cxx trunk/Source/Modules/d.cxx Modified: trunk/Source/Modules/csharp.cxx =================================================================== --- trunk/Source/Modules/csharp.cxx 2012-11-19 19:46:21 UTC (rev 13913) +++ trunk/Source/Modules/csharp.cxx 2012-11-19 19:47:48 UTC (rev 13914) @@ -4070,7 +4070,7 @@ Printf(w->def, ") {"); - if (Len(director_callback_typedefs) > 0) { + if (Len(director_callbacks) > 0) { Printf(f_directors_h, "\nprivate:\n%s", director_callbacks); } Printf(f_directors_h, " void swig_init_callbacks();\n"); Modified: trunk/Source/Modules/d.cxx =================================================================== --- trunk/Source/Modules/d.cxx 2012-11-19 19:46:21 UTC (rev 13913) +++ trunk/Source/Modules/d.cxx 2012-11-19 19:47:48 UTC (rev 13914) @@ -2528,7 +2528,7 @@ Printf(f_directors_h, "\nprivate:\n"); Printf(f_directors_h, " void swig_init_callbacks();\n"); Printf(f_directors_h, " void *d_object;\n"); - if (Len(director_callback_typedefs) > 0) { + if (Len(director_callback_pointers) > 0) { Printf(f_directors_h, "%s", director_callback_pointers); } Printf(f_directors_h, "};\n\n"); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |