From: <wsf...@us...> - 2006-12-05 22:11:00
|
Revision: 9606 http://swig.svn.sourceforge.net/swig/?rev=9606&view=rev Author: wsfulton Date: 2006-12-05 14:10:56 -0800 (Tue, 05 Dec 2006) Log Message: ----------- %extend for static member varibles work in progress ... static member variable and global variable wrapper names changed so that they don't clash with the user supplied %extend function name Modified Paths: -------------- trunk/Source/Modules/python.cxx trunk/Source/Modules/tcl8.cxx Modified: trunk/Source/Modules/python.cxx =================================================================== --- trunk/Source/Modules/python.cxx 2006-12-05 22:07:28 UTC (rev 9605) +++ trunk/Source/Modules/python.cxx 2006-12-05 22:10:56 UTC (rev 9606) @@ -2139,8 +2139,6 @@ String *iname = Getattr(n, "sym:name"); SwigType *t = Getattr(n, "type"); - String *getnamef; - String *setnamef; static int have_globals = 0; String *tm; Wrapper *getf, *setf; @@ -2169,12 +2167,14 @@ } } - getnamef = Swig_name_get(iname); - setnamef = Swig_name_set(iname); + String *getname = Swig_name_get(iname); + String *setname = Swig_name_set(iname); + String *vargetname = NewStringf("Swig_var_%s", getname); + String *varsetname = NewStringf("Swig_var_%s", setname); /* Create a function for setting the value of the variable */ if (assignable) { - Printf(setf->def, "SWIGINTERN int %s(PyObject *_val) {", setnamef); + Printf(setf->def, "SWIGINTERN int %s(PyObject *_val) {", varsetname); if ((tm = Swig_typemap_lookup_new("varin", n, name, 0))) { Replaceall(tm, "$source", "_val"); Replaceall(tm, "$target", name); @@ -2193,9 +2193,9 @@ } else { /* Is a readonly variable. Issue an error */ if (CPlusPlus) { - Printf(setf->def, "SWIGINTERN int %s(PyObject *) {", setnamef); + Printf(setf->def, "SWIGINTERN int %s(PyObject *) {", varsetname); } else { - Printf(setf->def, "SWIGINTERN int %s(PyObject *_val SWIGUNUSED) {", setnamef); + Printf(setf->def, "SWIGINTERN int %s(PyObject *_val SWIGUNUSED) {", varsetname); } Printv(setf->code, ctab4, "SWIG_Error(SWIG_AttributeError,\"Variable ", iname, " is read-only.\");\n", ctab4, "return 1;\n", NIL); } @@ -2205,7 +2205,7 @@ /* Create a function for getting the value of a variable */ int addfail = 0; - Printf(getf->def, "SWIGINTERN PyObject *%s(void) {", getnamef); + Printf(getf->def, "SWIGINTERN PyObject *%s(void) {", vargetname); Wrapper_add_local(getf, "pyobj", "PyObject *pyobj = 0"); if ((tm = Swig_typemap_lookup_new("varout", n, name, 0))) { Replaceall(tm, "$source", name); @@ -2226,10 +2226,12 @@ Wrapper_print(getf, f_wrappers); /* Now add this to the variable linking mechanism */ - Printf(f_init, "\t SWIG_addvarlink(SWIG_globals(),(char*)\"%s\",%s, %s);\n", iname, getnamef, setnamef); + Printf(f_init, "\t SWIG_addvarlink(SWIG_globals(),(char*)\"%s\",%s, %s);\n", iname, vargetname, varsetname); - Delete(getnamef); - Delete(setnamef); + Delete(vargetname); + Delete(varsetname); + Delete(getname); + Delete(setname); DelWrapper(setf); DelWrapper(getf); return SWIG_OK; @@ -3061,27 +3063,27 @@ if (shadow) { String *mname = Swig_name_member(class_name, symname); - String *sname = Swig_name_set(mname); - String *gname = Swig_name_get(mname); + String *setname = Swig_name_set(mname); + String *getname = Swig_name_get(mname); if (shadow) { int assignable = is_assignable(n); if (!modern) { if (assignable) { - Printv(f_shadow, tab4, "__swig_setmethods__[\"", symname, "\"] = ", module, ".", sname, "\n", NIL); + Printv(f_shadow, tab4, "__swig_setmethods__[\"", symname, "\"] = ", module, ".", setname, "\n", NIL); } - Printv(f_shadow, tab4, "__swig_getmethods__[\"", symname, "\"] = ", module, ".", gname, "\n", NIL); + Printv(f_shadow, tab4, "__swig_getmethods__[\"", symname, "\"] = ", module, ".", getname, "\n", NIL); } if (!classic) { if (!assignable) { - Printv(f_shadow, tab4, modern ? "" : "if _newclass:", symname, " = _swig_property(", module, ".", gname, ")\n", NIL); + Printv(f_shadow, tab4, modern ? "" : "if _newclass:", symname, " = _swig_property(", module, ".", getname, ")\n", NIL); } else { - Printv(f_shadow, tab4, modern ? "" : "if _newclass:", symname, " = _swig_property(", module, ".", gname, ", ", module, ".", sname, ")\n", NIL); + Printv(f_shadow, tab4, modern ? "" : "if _newclass:", symname, " = _swig_property(", module, ".", getname, ", ", module, ".", setname, ")\n", NIL); } } } Delete(mname); - Delete(sname); - Delete(gname); + Delete(setname); + Delete(getname); } return SWIG_OK; @@ -3102,50 +3104,54 @@ Delete(mname); } else { String *mname = Swig_name_member(class_name, symname); - String *gname = Swig_name_get(mname); - String *wgname = Swig_name_wrapper(gname); - String *sname = Swig_name_set(mname); - String *wsname = Swig_name_wrapper(sname); + String *getname = Swig_name_get(mname); + String *wrapgetname = Swig_name_wrapper(getname); + String *vargetname = NewStringf("Swig_var_%s", getname); + String *setname = Swig_name_set(mname); + String *wrapsetname = Swig_name_wrapper(setname); + String *varsetname = NewStringf("Swig_var_%s", setname); Wrapper *f = NewWrapper(); - Printv(f->def, "SWIGINTERN PyObject *", wgname, "(PyObject *SWIGUNUSEDPARM(self), PyObject *SWIGUNUSEDPARM(args)) {", NIL); - Printv(f->code, " return ", gname, "();\n", NIL); + Printv(f->def, "SWIGINTERN PyObject *", wrapgetname, "(PyObject *SWIGUNUSEDPARM(self), PyObject *SWIGUNUSEDPARM(args)) {", NIL); + Printv(f->code, " return ", vargetname, "();\n", NIL); Append(f->code, "}\n"); - add_method(gname, wgname, 0); + add_method(getname, wrapgetname, 0); Wrapper_print(f, f_wrappers); DelWrapper(f); int assignable = is_assignable(n); if (assignable) { Wrapper *f = NewWrapper(); - Printv(f->def, "SWIGINTERN PyObject *", wsname, "(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {", NIL); + Printv(f->def, "SWIGINTERN PyObject *", wrapsetname, "(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {", NIL); Wrapper_add_local(f, "value", "PyObject *value"); Wrapper_add_local(f, "res", "int res"); Append(f->code, "if (!PyArg_ParseTuple(args,(char *)\"O:set\",&value)) return NULL;\n"); - Printv(f->code, "res = ", sname, "(value);\n", NIL); + Printv(f->code, "res = ", varsetname, "(value);\n", NIL); Append(f->code, "return !res ? SWIG_Py_Void() : NULL;\n"); Append(f->code, "}\n"); Wrapper_print(f, f_wrappers); - add_method(sname, wsname, 0); + add_method(setname, wrapsetname, 0); DelWrapper(f); } if (!modern) { if (assignable) { - Printv(f_shadow, tab4, "__swig_setmethods__[\"", symname, "\"] = ", module, ".", sname, "\n", NIL); + Printv(f_shadow, tab4, "__swig_setmethods__[\"", symname, "\"] = ", module, ".", setname, "\n", NIL); } - Printv(f_shadow, tab4, "__swig_getmethods__[\"", symname, "\"] = ", module, ".", gname, "\n", NIL); + Printv(f_shadow, tab4, "__swig_getmethods__[\"", symname, "\"] = ", module, ".", getname, "\n", NIL); } if (!classic) { if (!assignable) { - Printv(f_shadow, tab4, modern ? "" : "if _newclass:", symname, " = _swig_property(", module, ".", gname, ")\n", NIL); + Printv(f_shadow, tab4, modern ? "" : "if _newclass:", symname, " = _swig_property(", module, ".", getname, ")\n", NIL); } else { - Printv(f_shadow, tab4, modern ? "" : "if _newclass:", symname, " = _swig_property(", module, ".", gname, ", ", module, ".", sname, ")\n", NIL); + Printv(f_shadow, tab4, modern ? "" : "if _newclass:", symname, " = _swig_property(", module, ".", getname, ", ", module, ".", setname, ")\n", NIL); } } Delete(mname); - Delete(gname); - Delete(wgname); - Delete(sname); - Delete(wsname); + Delete(getname); + Delete(wrapgetname); + Delete(vargetname); + Delete(setname); + Delete(wrapsetname); + Delete(varsetname); } } return SWIG_OK; Modified: trunk/Source/Modules/tcl8.cxx =================================================================== --- trunk/Source/Modules/tcl8.cxx 2006-12-05 22:07:28 UTC (rev 9605) +++ trunk/Source/Modules/tcl8.cxx 2006-12-05 22:10:56 UTC (rev 9606) @@ -549,7 +549,7 @@ SwigType *t = Getattr(n, "type"); String *setname = 0; - String *getname = 0; + String *setfname = 0; Wrapper *setf = 0, *getf = 0; int readonly = 0; String *tm; @@ -560,8 +560,9 @@ /* Create a function for getting a variable */ int addfail = 0; getf = NewWrapper(); - getname = Swig_name_get(iname); - Printv(getf->def, "SWIGINTERN const char *", getname, "(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, char *name1, char *name2, int flags) {", NIL); + String *getname = Swig_name_get(iname); + String *getfname = Swig_name_wrapper(getname); + Printv(getf->def, "SWIGINTERN const char *", getfname, "(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, char *name1, char *name2, int flags) {", NIL); Wrapper_add_local(getf, "value", "Tcl_Obj *value = 0"); if ((tm = Swig_typemap_lookup_new("varout", n, name, 0))) { Replaceall(tm, "$source", name); @@ -591,7 +592,8 @@ if (is_assignable(n)) { setf = NewWrapper(); setname = Swig_name_set(iname); - Printv(setf->def, "SWIGINTERN const char *", setname, + setfname = Swig_name_wrapper(setname); + Printv(setf->def, "SWIGINTERN const char *", setfname, "(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, char *name1, char *name2 SWIGUNUSED, int flags) {", NIL); Wrapper_add_local(setf, "value", "Tcl_Obj *value = 0"); Wrapper_add_local(setf, "name1o", "Tcl_Obj *name1o = 0"); @@ -622,7 +624,7 @@ } - Printv(var_tab, tab4, "{ SWIG_prefix \"", iname, "\", 0, (swig_variable_func) ", getname, ",", NIL); + Printv(var_tab, tab4, "{ SWIG_prefix \"", iname, "\", 0, (swig_variable_func) ", getfname, ",", NIL); if (readonly) { static int readonlywrap = 0; if (!readonlywrap) { @@ -636,8 +638,10 @@ } Printf(var_tab, "(swig_variable_func) swig_readonly},\n"); } else { - Printv(var_tab, "(swig_variable_func) ", setname, "},\n", NIL); + Printv(var_tab, "(swig_variable_func) ", setfname, "},\n", NIL); } + Delete(getfname); + Delete(setfname); Delete(setname); Delete(getname); return SWIG_OK; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wsf...@us...> - 2006-12-05 22:12:29
|
Revision: 9608 http://swig.svn.sourceforge.net/swig/?rev=9608&view=rev Author: wsfulton Date: 2006-12-05 14:12:25 -0800 (Tue, 05 Dec 2006) Log Message: ----------- %extend for static member varibles work in progress ... more consistent code across different language modules and memory leak fixes Modified Paths: -------------- trunk/Source/Modules/chicken.cxx trunk/Source/Modules/perl5.cxx trunk/Source/Modules/ruby.cxx Modified: trunk/Source/Modules/chicken.cxx =================================================================== --- trunk/Source/Modules/chicken.cxx 2006-12-05 22:11:40 UTC (rev 9607) +++ trunk/Source/Modules/chicken.cxx 2006-12-05 22:12:25 UTC (rev 9608) @@ -1162,6 +1162,8 @@ } Delete(proc); + Delete(setfunc); + Delete(getfunc); return SWIG_OK; } Modified: trunk/Source/Modules/perl5.cxx =================================================================== --- trunk/Source/Modules/perl5.cxx 2006-12-05 22:11:40 UTC (rev 9607) +++ trunk/Source/Modules/perl5.cxx 2006-12-05 22:12:25 UTC (rev 9608) @@ -765,9 +765,11 @@ SwigType *t = Getattr(n, "type"); Wrapper *getf, *setf; String *tm; + String *getname = Swig_name_get(iname); + String *setname = Swig_name_set(iname); - String *set_name = Swig_name_wrapper(Swig_name_set(iname)); - String *val_name = Swig_name_wrapper(Swig_name_get(iname)); + String *get_name = Swig_name_wrapper(getname); + String *set_name = Swig_name_wrapper(setname); if (!addSymbol(iname, n)) return SWIG_ERROR; @@ -801,7 +803,7 @@ /* Now write a function to evaluate the variable */ int addfail = 0; - Printf(getf->def, "SWIGCLASS_STATIC int %s(pTHX_ SV *sv, MAGIC *SWIGUNUSEDPARM(mg)) {\n", val_name); + Printf(getf->def, "SWIGCLASS_STATIC int %s(pTHX_ SV *sv, MAGIC *SWIGUNUSEDPARM(mg)) {\n", get_name); Printv(getf->code, tab4, "MAGIC_PPERL\n", NIL); if ((tm = Swig_typemap_lookup_new("varout", n, name, 0))) { @@ -850,10 +852,10 @@ } /* Now add symbol to the PERL interpreter */ if (GetFlag(n, "feature:immutable")) { - Printv(variable_tab, tab4, "{ \"", cmodule, "::", iname, "\", MAGIC_CLASS swig_magic_readonly, MAGIC_CLASS ", val_name, ",", tt, " },\n", NIL); + Printv(variable_tab, tab4, "{ \"", cmodule, "::", iname, "\", MAGIC_CLASS swig_magic_readonly, MAGIC_CLASS ", get_name, ",", tt, " },\n", NIL); } else { - Printv(variable_tab, tab4, "{ \"", cmodule, "::", iname, "\", MAGIC_CLASS ", set_name, ", MAGIC_CLASS ", val_name, ",", tt, " },\n", NIL); + Printv(variable_tab, tab4, "{ \"", cmodule, "::", iname, "\", MAGIC_CLASS ", set_name, ", MAGIC_CLASS ", get_name, ",", tt, " },\n", NIL); } /* If we're blessed, try to figure out what to do with the variable @@ -876,8 +878,10 @@ DelWrapper(setf); DelWrapper(getf); + Delete(getname); + Delete(setname); Delete(set_name); - Delete(val_name); + Delete(get_name); return SWIG_OK; } Modified: trunk/Source/Modules/ruby.cxx =================================================================== --- trunk/Source/Modules/ruby.cxx 2006-12-05 22:11:40 UTC (rev 9607) +++ trunk/Source/Modules/ruby.cxx 2006-12-05 22:12:25 UTC (rev 9608) @@ -1416,7 +1416,8 @@ /* create getter */ int addfail = 0; - getfname = Swig_name_get(iname); + String *getname = Swig_name_get(iname); + getfname = Swig_name_wrapper(getname); Printv(getf->def, "SWIGINTERN VALUE\n", getfname, "(", NIL); Printf(getf->def, "VALUE self"); Printf(getf->def, ") {"); @@ -1445,7 +1446,8 @@ setfname = NewString("NULL"); } else { /* create setter */ - setfname = Swig_name_set(iname); + String *setname = Swig_name_set(iname); + setfname = Swig_name_wrapper(setname); Printv(setf->def, "SWIGINTERN VALUE\n", setfname, "(VALUE self, ", NIL); Printf(setf->def, "VALUE _val) {"); tm = Swig_typemap_lookup_new("varin", n, name, 0); @@ -1463,6 +1465,7 @@ Printv(setf->code, tab4, "return Qnil;\n", NIL); Printf(setf->code, "}\n"); Wrapper_print(setf, f_wrappers); + Delete(setname); } /* define accessor method */ @@ -1502,6 +1505,7 @@ Delete(s); break; } + Delete(getname); Delete(getfname); Delete(setfname); DelWrapper(setf); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wsf...@us...> - 2007-07-17 22:29:51
|
Revision: 9865 http://swig.svn.sourceforge.net/swig/?rev=9865&view=rev Author: wsfulton Date: 2007-07-17 15:29:48 -0700 (Tue, 17 Jul 2007) Log Message: ----------- dead code fixes Modified Paths: -------------- trunk/Source/Modules/allegrocl.cxx trunk/Source/Modules/overload.cxx Modified: trunk/Source/Modules/allegrocl.cxx =================================================================== --- trunk/Source/Modules/allegrocl.cxx 2007-07-10 09:30:49 UTC (rev 9864) +++ trunk/Source/Modules/allegrocl.cxx 2007-07-17 22:29:48 UTC (rev 9865) @@ -1727,7 +1727,7 @@ differ = t1v - t2v; } else if (!t1 && t2) differ = 1; - else if (t2 && !t1) + else if (t1 && !t2) differ = -1; else if (!t1 && !t2) differ = -1; Modified: trunk/Source/Modules/overload.cxx =================================================================== --- trunk/Source/Modules/overload.cxx 2007-07-10 09:30:49 UTC (rev 9864) +++ trunk/Source/Modules/overload.cxx 2007-07-17 22:29:48 UTC (rev 9865) @@ -142,7 +142,7 @@ differ = t1v - t2v; } else if (!t1 && t2) differ = 1; - else if (t2 && !t1) + else if (t1 && !t2) differ = -1; else if (!t1 && !t2) differ = -1; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wsf...@us...> - 2008-02-25 22:07:33
|
Revision: 10265 http://swig.svn.sourceforge.net/swig/?rev=10265&view=rev Author: wsfulton Date: 2008-02-25 14:07:28 -0800 (Mon, 25 Feb 2008) Log Message: ----------- Fixes for $wrapname to work in %exception Modified Paths: -------------- trunk/Source/Modules/cffi.cxx trunk/Source/Modules/chicken.cxx trunk/Source/Modules/emit.cxx trunk/Source/Modules/lua.cxx trunk/Source/Modules/modula3.cxx trunk/Source/Modules/php4.cxx trunk/Source/Modules/pike.cxx trunk/Source/Modules/python.cxx trunk/Source/Modules/ruby.cxx Modified: trunk/Source/Modules/cffi.cxx =================================================================== --- trunk/Source/Modules/cffi.cxx 2008-02-25 22:06:29 UTC (rev 10264) +++ trunk/Source/Modules/cffi.cxx 2008-02-25 22:07:28 UTC (rev 10265) @@ -166,7 +166,6 @@ Printf(f_lisp, "%s\n", f_cl); Printf(f_lisp, "%s\n", f_clwrap); - Printf(stderr, "All done now!\n"); Close(f_lisp); Delete(f_lisp); // Deletes the handle, not the file Delete(f_cl); @@ -383,6 +382,8 @@ if (overname) { Append(wname, overname); } + Setattr(n, "wrap:name", wname); + // Emit all of the local variables for holding arguments. emit_args(Getattr(n, "type"), parms, wrap); Modified: trunk/Source/Modules/chicken.cxx =================================================================== --- trunk/Source/Modules/chicken.cxx 2008-02-25 22:06:29 UTC (rev 10264) +++ trunk/Source/Modules/chicken.cxx 2008-02-25 22:07:28 UTC (rev 10265) @@ -501,6 +501,8 @@ } } + Setattr(n, "wrap:name", wname); + /* Emit the function call */ emit_action(n, f); @@ -603,8 +605,6 @@ Printv(f_wrappers, "static ", declfunc, " C_noret;\n", NIL); Wrapper_print(f, f_wrappers); - Setattr(n, "wrap:name", wname); - /* Now register the function with the interpreter. */ if (!Getattr(n, "sym:overloaded")) { if (exporting_destructor && !no_collection) { Modified: trunk/Source/Modules/emit.cxx =================================================================== --- trunk/Source/Modules/emit.cxx 2008-02-25 22:06:29 UTC (rev 10264) +++ trunk/Source/Modules/emit.cxx 2008-02-25 22:07:28 UTC (rev 10265) @@ -337,6 +337,8 @@ * Emits action code for a wrapper and checks for exception handling * ----------------------------------------------------------------------------- */ int emit_action_code(Node *n, Wrapper *f, String *eaction) { + assert(Getattr(n, "wrap:name")); + /* Look for except feature */ String *tm = GetFlagAttr(n, "feature:except"); if (tm) Modified: trunk/Source/Modules/lua.cxx =================================================================== --- trunk/Source/Modules/lua.cxx 2008-02-25 22:06:29 UTC (rev 10264) +++ trunk/Source/Modules/lua.cxx 2008-02-25 22:07:28 UTC (rev 10265) @@ -535,6 +535,8 @@ } } + Setattr(n, "wrap:name", wname); + /* Emit the function call */ emit_action(n, f); @@ -605,8 +607,6 @@ /* Dump the function out */ Wrapper_print(f, f_wrappers); - Setattr(n, "wrap:name", wname); // you need this to make the overloading work - /* NEW LANGUAGE NOTE:*********************************************** register the function in SWIG different language mappings seem to use different ideas @@ -618,7 +618,6 @@ Printv(s_cmd_tab, tab4, "{ \"", iname, "\", ", Swig_name_wrapper(iname), "},\n", NIL); // Printv(s_cmd_tab, tab4, "{ SWIG_prefix \"", iname, "\", (swig_wrapper_func) ", Swig_name_wrapper(iname), "},\n", NIL); } else { - // Setattr(n,"wrap:name", wname); if (!Getattr(n, "sym:nextSibling")) { dispatchFunction(n); } Modified: trunk/Source/Modules/modula3.cxx =================================================================== --- trunk/Source/Modules/modula3.cxx 2008-02-25 22:06:29 UTC (rev 10264) +++ trunk/Source/Modules/modula3.cxx 2008-02-25 22:07:28 UTC (rev 10265) @@ -1415,6 +1415,9 @@ SwigType *ty = Swig_wrapped_var_type(Getattr(n, "type"), use_naturalvar_mode(n)); Setattr(n, "wrap:action", NewStringf("result = (%s) %s;\n", SwigType_lstr(ty, 0), Getattr(n, "value"))); } + + Setattr(n, "wrap:name", wname); + // Now write code to make the function call if (!native_function_flag) { emit_action(n, f); @@ -1489,8 +1492,6 @@ Wrapper_print(f, f_wrappers); } - Setattr(n, "wrap:name", wname); - Delete(c_return_type); Delete(cleanup); Delete(outarg); Modified: trunk/Source/Modules/php4.cxx =================================================================== --- trunk/Source/Modules/php4.cxx 2008-02-25 22:06:29 UTC (rev 10264) +++ trunk/Source/Modules/php4.cxx 2008-02-25 22:07:28 UTC (rev 10265) @@ -1172,6 +1172,8 @@ } } + Setattr(n, "wrap:name", wname); + /* emit function call */ emit_action(n, f); @@ -1249,8 +1251,6 @@ Wrapper_print(f, s_wrappers); - // wrap:name is used by overload resolution - Setattr(n, "wrap:name", wname); if (overloaded && !Getattr(n, "sym:nextSibling")) { dispatchFunction(n); } Modified: trunk/Source/Modules/pike.cxx =================================================================== --- trunk/Source/Modules/pike.cxx 2008-02-25 22:06:29 UTC (rev 10264) +++ trunk/Source/Modules/pike.cxx 2008-02-25 22:07:28 UTC (rev 10265) @@ -310,6 +310,7 @@ if (overname) { Append(wname, overname); } + Setattr(n, "wrap:name", wname); Printv(f->def, "static void ", wname, "(INT32 args) {", NIL); @@ -469,7 +470,6 @@ if (!Getattr(n, "sym:overloaded")) { add_method(iname, wname, description); } else { - Setattr(n, "wrap:name", wname); if (!Getattr(n, "sym:nextSibling")) { dispatchFunction(n); } Modified: trunk/Source/Modules/python.cxx =================================================================== --- trunk/Source/Modules/python.cxx 2008-02-25 22:06:29 UTC (rev 10264) +++ trunk/Source/Modules/python.cxx 2008-02-25 22:07:28 UTC (rev 10265) @@ -1937,6 +1937,8 @@ } } + Setattr(n, "wrap:name", wname); + emit_action(n, f); if (director_method) { @@ -2106,8 +2108,6 @@ Wrapper_print(f, f_wrappers); } - Setattr(n, "wrap:name", wname); - /* Now register the function with the interpreter. */ if (!Getattr(n, "sym:overloaded")) { add_method(iname, wname, allow_kwargs, n, funpack, num_required, num_arguments); Modified: trunk/Source/Modules/ruby.cxx =================================================================== --- trunk/Source/Modules/ruby.cxx 2008-02-25 22:06:29 UTC (rev 10264) +++ trunk/Source/Modules/ruby.cxx 2008-02-25 22:07:28 UTC (rev 10265) @@ -1771,6 +1771,8 @@ Printf(f->code, "try {\n"); } + Setattr(n, "wrap:name", wname); + emit_action(n, f); if (director_method) { @@ -1948,7 +1950,6 @@ if (current == CONSTRUCTOR_ALLOCATE) { create_command(n, symname); } else { - Setattr(n, "wrap:name", wname); if (!Getattr(n, "sym:nextSibling")) dispatchFunction(n); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wsf...@us...> - 2007-10-17 21:42:15
|
Revision: 10003 http://swig.svn.sourceforge.net/swig/?rev=10003&view=rev Author: wsfulton Date: 2007-10-17 14:42:11 -0700 (Wed, 17 Oct 2007) Log Message: ----------- Replace cvs $Header$ with svn $Id$ Modified Paths: -------------- trunk/Source/Modules/allegrocl.cxx trunk/Source/Modules/allocate.cxx trunk/Source/Modules/browser.cxx trunk/Source/Modules/cffi.cxx trunk/Source/Modules/chicken.cxx trunk/Source/Modules/clisp.cxx trunk/Source/Modules/contract.cxx trunk/Source/Modules/csharp.cxx trunk/Source/Modules/directors.cxx trunk/Source/Modules/emit.cxx trunk/Source/Modules/guile.cxx trunk/Source/Modules/java.cxx trunk/Source/Modules/lang.cxx trunk/Source/Modules/lua.cxx trunk/Source/Modules/main.cxx trunk/Source/Modules/modula3.cxx trunk/Source/Modules/module.cxx trunk/Source/Modules/mzscheme.cxx trunk/Source/Modules/ocaml.cxx trunk/Source/Modules/overload.cxx trunk/Source/Modules/perl5.cxx trunk/Source/Modules/php4.cxx trunk/Source/Modules/pike.cxx trunk/Source/Modules/python.cxx trunk/Source/Modules/r.cxx trunk/Source/Modules/ruby.cxx trunk/Source/Modules/s-exp.cxx trunk/Source/Modules/swigmain.cxx trunk/Source/Modules/swigmod.h trunk/Source/Modules/tcl8.cxx trunk/Source/Modules/typepass.cxx trunk/Source/Modules/uffi.cxx trunk/Source/Modules/utils.cxx trunk/Source/Modules/xml.cxx Modified: trunk/Source/Modules/allegrocl.cxx =================================================================== --- trunk/Source/Modules/allegrocl.cxx 2007-10-17 21:37:03 UTC (rev 10002) +++ trunk/Source/Modules/allegrocl.cxx 2007-10-17 21:42:11 UTC (rev 10003) @@ -7,7 +7,7 @@ * ALLEGROCL language module for SWIG. * ----------------------------------------------------------------------------- */ -char cvsroot_allegrocl_cxx[] = "$Header$"; +char cvsroot_allegrocl_cxx[] = "$Id$"; #include "swigmod.h" #include "cparse.h" Modified: trunk/Source/Modules/allocate.cxx =================================================================== --- trunk/Source/Modules/allocate.cxx 2007-10-17 21:37:03 UTC (rev 10002) +++ trunk/Source/Modules/allocate.cxx 2007-10-17 21:42:11 UTC (rev 10003) @@ -11,7 +11,7 @@ * Doc/Manual/SWIGPlus.html for details. * ----------------------------------------------------------------------------- */ -char cvsroot_allocate_cxx[] = "$Header$"; +char cvsroot_allocate_cxx[] = "$Id$"; #include "swigmod.h" #include "cparse.h" Modified: trunk/Source/Modules/browser.cxx =================================================================== --- trunk/Source/Modules/browser.cxx 2007-10-17 21:37:03 UTC (rev 10002) +++ trunk/Source/Modules/browser.cxx 2007-10-17 21:42:11 UTC (rev 10003) @@ -8,7 +8,7 @@ * feature that's normally disabled. * ----------------------------------------------------------------------------- */ -char cvsroot_browser_cxx[] = "$Header$"; +char cvsroot_browser_cxx[] = "$Id$"; #include "swigmod.h" Modified: trunk/Source/Modules/cffi.cxx =================================================================== --- trunk/Source/Modules/cffi.cxx 2007-10-17 21:37:03 UTC (rev 10002) +++ trunk/Source/Modules/cffi.cxx 2007-10-17 21:42:11 UTC (rev 10003) @@ -7,7 +7,7 @@ * cffi language module for SWIG. * ----------------------------------------------------------------------------- */ -char cvsroot_cffi_cxx[] = "$Header$"; +char cvsroot_cffi_cxx[] = "$Id$"; #include "swigmod.h" #include "cparse.h" Modified: trunk/Source/Modules/chicken.cxx =================================================================== --- trunk/Source/Modules/chicken.cxx 2007-10-17 21:37:03 UTC (rev 10002) +++ trunk/Source/Modules/chicken.cxx 2007-10-17 21:42:11 UTC (rev 10003) @@ -7,7 +7,7 @@ * CHICKEN language module for SWIG. * ----------------------------------------------------------------------------- */ -char cvsroot_chicken_cxx[] = "$Header$"; +char cvsroot_chicken_cxx[] = "$Id$"; #include "swigmod.h" Modified: trunk/Source/Modules/clisp.cxx =================================================================== --- trunk/Source/Modules/clisp.cxx 2007-10-17 21:37:03 UTC (rev 10002) +++ trunk/Source/Modules/clisp.cxx 2007-10-17 21:42:11 UTC (rev 10003) @@ -7,7 +7,7 @@ * clisp language module for SWIG. * ----------------------------------------------------------------------------- */ -char cvsroot_clisp_cxx[] = "$Header$"; +char cvsroot_clisp_cxx[] = "$Id$"; #include "swigmod.h" Modified: trunk/Source/Modules/contract.cxx =================================================================== --- trunk/Source/Modules/contract.cxx 2007-10-17 21:37:03 UTC (rev 10002) +++ trunk/Source/Modules/contract.cxx 2007-10-17 21:42:11 UTC (rev 10003) @@ -7,7 +7,7 @@ * Support for Wrap by Contract in SWIG. * ----------------------------------------------------------------------------- */ -char cvsroot_contract_cxx[] = "$Header$"; +char cvsroot_contract_cxx[] = "$Id$"; #include "swigmod.h" Modified: trunk/Source/Modules/csharp.cxx =================================================================== --- trunk/Source/Modules/csharp.cxx 2007-10-17 21:37:03 UTC (rev 10002) +++ trunk/Source/Modules/csharp.cxx 2007-10-17 21:42:11 UTC (rev 10003) @@ -7,7 +7,7 @@ * C# language module for SWIG. * ----------------------------------------------------------------------------- */ -char cvsroot_csharp_cxx[] = "$Header$"; +char cvsroot_csharp_cxx[] = "$Id$"; #include "swigmod.h" #include <limits.h> // for INT_MAX Modified: trunk/Source/Modules/directors.cxx =================================================================== --- trunk/Source/Modules/directors.cxx 2007-10-17 21:37:03 UTC (rev 10002) +++ trunk/Source/Modules/directors.cxx 2007-10-17 21:42:11 UTC (rev 10003) @@ -9,7 +9,7 @@ * in SWIG. --MR * ----------------------------------------------------------------------------- */ -char cvsroot_directors_cxx[] = "$Header"; +char cvsroot_directors_cxx[] = "$Id"; #include "swigmod.h" Modified: trunk/Source/Modules/emit.cxx =================================================================== --- trunk/Source/Modules/emit.cxx 2007-10-17 21:37:03 UTC (rev 10002) +++ trunk/Source/Modules/emit.cxx 2007-10-17 21:42:11 UTC (rev 10003) @@ -7,7 +7,7 @@ * Useful functions for emitting various pieces of code. * ----------------------------------------------------------------------------- */ -char cvsroot_emit_cxx[] = "$Header$"; +char cvsroot_emit_cxx[] = "$Id$"; #include "swigmod.h" Modified: trunk/Source/Modules/guile.cxx =================================================================== --- trunk/Source/Modules/guile.cxx 2007-10-17 21:37:03 UTC (rev 10002) +++ trunk/Source/Modules/guile.cxx 2007-10-17 21:42:11 UTC (rev 10003) @@ -7,7 +7,7 @@ * Guile language module for SWIG. * ----------------------------------------------------------------------------- */ -char cvsroot_guile_cxx[] = "$Header$"; +char cvsroot_guile_cxx[] = "$Id$"; #include "swigmod.h" Modified: trunk/Source/Modules/java.cxx =================================================================== --- trunk/Source/Modules/java.cxx 2007-10-17 21:37:03 UTC (rev 10002) +++ trunk/Source/Modules/java.cxx 2007-10-17 21:42:11 UTC (rev 10003) @@ -7,7 +7,7 @@ * Java language module for SWIG. * ----------------------------------------------------------------------------- */ -char cvsroot_java_cxx[] = "$Header$"; +char cvsroot_java_cxx[] = "$Id$"; #include "swigmod.h" #include <limits.h> // for INT_MAX Modified: trunk/Source/Modules/lang.cxx =================================================================== --- trunk/Source/Modules/lang.cxx 2007-10-17 21:37:03 UTC (rev 10002) +++ trunk/Source/Modules/lang.cxx 2007-10-17 21:42:11 UTC (rev 10003) @@ -7,7 +7,7 @@ * Language base class functions. Default C++ handling is also implemented here. * ----------------------------------------------------------------------------- */ -char cvsroot_lang_cxx[] = "$Header$"; +char cvsroot_lang_cxx[] = "$Id$"; #include "swigmod.h" #include "cparse.h" Modified: trunk/Source/Modules/lua.cxx =================================================================== --- trunk/Source/Modules/lua.cxx 2007-10-17 21:37:03 UTC (rev 10002) +++ trunk/Source/Modules/lua.cxx 2007-10-17 21:42:11 UTC (rev 10003) @@ -40,7 +40,7 @@ */ -char cvsroot_lua_cxx[] = "$Header$"; +char cvsroot_lua_cxx[] = "$Id$"; #include "swigmod.h" Modified: trunk/Source/Modules/main.cxx =================================================================== --- trunk/Source/Modules/main.cxx 2007-10-17 21:37:03 UTC (rev 10002) +++ trunk/Source/Modules/main.cxx 2007-10-17 21:42:11 UTC (rev 10003) @@ -7,7 +7,7 @@ * Main entry point to the SWIG core. * ----------------------------------------------------------------------------- */ -char cvsroot_main_cxx[] = "$Header$"; +char cvsroot_main_cxx[] = "$Id$"; #include "swigconfig.h" Modified: trunk/Source/Modules/modula3.cxx =================================================================== --- trunk/Source/Modules/modula3.cxx 2007-10-17 21:37:03 UTC (rev 10002) +++ trunk/Source/Modules/modula3.cxx 2007-10-17 21:42:11 UTC (rev 10003) @@ -7,7 +7,7 @@ * Modula3 language module for SWIG. * ----------------------------------------------------------------------------- */ -char cvsroot_modula3_cxx[] = "$Header$"; +char cvsroot_modula3_cxx[] = "$Id$"; /* Text formatted with Modified: trunk/Source/Modules/module.cxx =================================================================== --- trunk/Source/Modules/module.cxx 2007-10-17 21:37:03 UTC (rev 10002) +++ trunk/Source/Modules/module.cxx 2007-10-17 21:42:11 UTC (rev 10003) @@ -7,7 +7,7 @@ * This file is responsible for the module system. * ----------------------------------------------------------------------------- */ -char cvsroot_module_cxx[] = "$Header$"; +char cvsroot_module_cxx[] = "$Id$"; #include "swigmod.h" Modified: trunk/Source/Modules/mzscheme.cxx =================================================================== --- trunk/Source/Modules/mzscheme.cxx 2007-10-17 21:37:03 UTC (rev 10002) +++ trunk/Source/Modules/mzscheme.cxx 2007-10-17 21:42:11 UTC (rev 10003) @@ -7,7 +7,7 @@ * Mzscheme language module for SWIG. * ----------------------------------------------------------------------------- */ -char cvsroot_mzscheme_cxx[] = "$Header$"; +char cvsroot_mzscheme_cxx[] = "$Id$"; #include "swigmod.h" Modified: trunk/Source/Modules/ocaml.cxx =================================================================== --- trunk/Source/Modules/ocaml.cxx 2007-10-17 21:37:03 UTC (rev 10002) +++ trunk/Source/Modules/ocaml.cxx 2007-10-17 21:42:11 UTC (rev 10003) @@ -7,7 +7,7 @@ * Ocaml language module for SWIG. * ----------------------------------------------------------------------------- */ -char cvsroot_ocaml_cxx[] = "$Header$"; +char cvsroot_ocaml_cxx[] = "$Id$"; #include "swigmod.h" Modified: trunk/Source/Modules/overload.cxx =================================================================== --- trunk/Source/Modules/overload.cxx 2007-10-17 21:37:03 UTC (rev 10002) +++ trunk/Source/Modules/overload.cxx 2007-10-17 21:42:11 UTC (rev 10003) @@ -9,7 +9,7 @@ * building a dispatch function. * ----------------------------------------------------------------------------- */ -char cvsroot_overload_cxx[] = "$Header$"; +char cvsroot_overload_cxx[] = "$Id$"; #include "swigmod.h" Modified: trunk/Source/Modules/perl5.cxx =================================================================== --- trunk/Source/Modules/perl5.cxx 2007-10-17 21:37:03 UTC (rev 10002) +++ trunk/Source/Modules/perl5.cxx 2007-10-17 21:42:11 UTC (rev 10003) @@ -7,7 +7,7 @@ * Perl5 language module for SWIG. * ------------------------------------------------------------------------- */ -char cvsroot_perl5_cxx[] = "$Header$"; +char cvsroot_perl5_cxx[] = "$Id$"; #include "swigmod.h" #include "cparse.h" Modified: trunk/Source/Modules/php4.cxx =================================================================== --- trunk/Source/Modules/php4.cxx 2007-10-17 21:37:03 UTC (rev 10002) +++ trunk/Source/Modules/php4.cxx 2007-10-17 21:42:11 UTC (rev 10003) @@ -45,7 +45,7 @@ * (may need to add more WARN_PHP4_xxx codes...) */ -char cvsroot_php4_cxx[] = "$Header$"; +char cvsroot_php4_cxx[] = "$Id$"; #include "swigmod.h" Modified: trunk/Source/Modules/pike.cxx =================================================================== --- trunk/Source/Modules/pike.cxx 2007-10-17 21:37:03 UTC (rev 10002) +++ trunk/Source/Modules/pike.cxx 2007-10-17 21:42:11 UTC (rev 10003) @@ -25,7 +25,7 @@ * */ -char cvsroot_pike_cxx[] = "$Header$"; +char cvsroot_pike_cxx[] = "$Id$"; #include "swigmod.h" Modified: trunk/Source/Modules/python.cxx =================================================================== --- trunk/Source/Modules/python.cxx 2007-10-17 21:37:03 UTC (rev 10002) +++ trunk/Source/Modules/python.cxx 2007-10-17 21:42:11 UTC (rev 10003) @@ -7,7 +7,7 @@ * Python language module for SWIG. * ----------------------------------------------------------------------------- */ -char cvsroot_python_cxx[] = "$Header$"; +char cvsroot_python_cxx[] = "$Id$"; #include "swigmod.h" #define ctab2 " " Modified: trunk/Source/Modules/r.cxx =================================================================== --- trunk/Source/Modules/r.cxx 2007-10-17 21:37:03 UTC (rev 10002) +++ trunk/Source/Modules/r.cxx 2007-10-17 21:42:11 UTC (rev 10003) @@ -7,7 +7,7 @@ * R language module for SWIG. * ----------------------------------------------------------------------------- */ -char cvsroot_r_cxx[] = "$Header$"; +char cvsroot_r_cxx[] = "$Id$"; #include "swigmod.h" Modified: trunk/Source/Modules/ruby.cxx =================================================================== --- trunk/Source/Modules/ruby.cxx 2007-10-17 21:37:03 UTC (rev 10002) +++ trunk/Source/Modules/ruby.cxx 2007-10-17 21:42:11 UTC (rev 10003) @@ -7,7 +7,7 @@ * Ruby language module for SWIG. * ----------------------------------------------------------------------------- */ -char cvsroot_ruby_cxx[] = "$Header$"; +char cvsroot_ruby_cxx[] = "$Id$"; #include "swigmod.h" #include "cparse.h" Modified: trunk/Source/Modules/s-exp.cxx =================================================================== --- trunk/Source/Modules/s-exp.cxx 2007-10-17 21:37:03 UTC (rev 10002) +++ trunk/Source/Modules/s-exp.cxx 2007-10-17 21:42:11 UTC (rev 10003) @@ -7,7 +7,7 @@ * A parse tree represented as Lisp s-expressions. * ----------------------------------------------------------------------------- */ -char cvsroot_s_exp_cxx[] = "$Header$"; +char cvsroot_s_exp_cxx[] = "$Id$"; #include "swigmod.h" #include "dohint.h" Modified: trunk/Source/Modules/swigmain.cxx =================================================================== --- trunk/Source/Modules/swigmain.cxx 2007-10-17 21:37:03 UTC (rev 10002) +++ trunk/Source/Modules/swigmain.cxx 2007-10-17 21:42:11 UTC (rev 10003) @@ -12,7 +12,7 @@ * to SWIG, you would modify this file. * ----------------------------------------------------------------------------- */ -char cvsroot_swigmain_cxx[] = "$Header$"; +char cvsroot_swigmain_cxx[] = "$Id$"; #include "swigmod.h" #include <ctype.h> Modified: trunk/Source/Modules/swigmod.h =================================================================== --- trunk/Source/Modules/swigmod.h 2007-10-17 21:37:03 UTC (rev 10002) +++ trunk/Source/Modules/swigmod.h 2007-10-17 21:42:11 UTC (rev 10003) @@ -7,7 +7,7 @@ * Main header file for SWIG modules. * ----------------------------------------------------------------------------- */ -/* $Header$ */ +/* $Id$ */ #ifndef SWIG_SWIGMOD_H_ #define SWIG_SWIGMOD_H_ Modified: trunk/Source/Modules/tcl8.cxx =================================================================== --- trunk/Source/Modules/tcl8.cxx 2007-10-17 21:37:03 UTC (rev 10002) +++ trunk/Source/Modules/tcl8.cxx 2007-10-17 21:42:11 UTC (rev 10003) @@ -7,7 +7,7 @@ * Tcl8 language module for SWIG. * ----------------------------------------------------------------------------- */ -char cvsroot_tcl8_cxx[] = "$Header$"; +char cvsroot_tcl8_cxx[] = "$Id$"; #include "swigmod.h" #include "cparse.h" Modified: trunk/Source/Modules/typepass.cxx =================================================================== --- trunk/Source/Modules/typepass.cxx 2007-10-17 21:37:03 UTC (rev 10002) +++ trunk/Source/Modules/typepass.cxx 2007-10-17 21:42:11 UTC (rev 10003) @@ -12,7 +12,7 @@ * and other information needed for compilation. * ----------------------------------------------------------------------------- */ -char cvsroot_typepass_cxx[] = "$Header$"; +char cvsroot_typepass_cxx[] = "$Id$"; #include "swigmod.h" #include "cparse.h" Modified: trunk/Source/Modules/uffi.cxx =================================================================== --- trunk/Source/Modules/uffi.cxx 2007-10-17 21:37:03 UTC (rev 10002) +++ trunk/Source/Modules/uffi.cxx 2007-10-17 21:42:11 UTC (rev 10003) @@ -9,7 +9,7 @@ // TODO: remove remnants of lisptype -char cvsroot_uffi_cxx[] = "$Header$"; +char cvsroot_uffi_cxx[] = "$Id$"; #include "swigmod.h" Modified: trunk/Source/Modules/utils.cxx =================================================================== --- trunk/Source/Modules/utils.cxx 2007-10-17 21:37:03 UTC (rev 10002) +++ trunk/Source/Modules/utils.cxx 2007-10-17 21:42:11 UTC (rev 10003) @@ -7,7 +7,7 @@ * Various utility functions. * ----------------------------------------------------------------------------- */ -char cvsroot_utils_cxx[] = "$Header$"; +char cvsroot_utils_cxx[] = "$Id$"; #include <swigmod.h> Modified: trunk/Source/Modules/xml.cxx =================================================================== --- trunk/Source/Modules/xml.cxx 2007-10-17 21:37:03 UTC (rev 10002) +++ trunk/Source/Modules/xml.cxx 2007-10-17 21:42:11 UTC (rev 10003) @@ -7,7 +7,7 @@ * An Xml parse tree generator. * ----------------------------------------------------------------------------- */ -char cvsroot_xml_cxx[] = "$Header$"; +char cvsroot_xml_cxx[] = "$Id$"; #include "swigmod.h" This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wsf...@us...> - 2007-10-22 21:31:22
|
Revision: 10020 http://swig.svn.sourceforge.net/swig/?rev=10020&view=rev Author: wsfulton Date: 2007-10-22 14:31:09 -0700 (Mon, 22 Oct 2007) Log Message: ----------- warning fixes Modified Paths: -------------- trunk/Source/Modules/lua.cxx trunk/Source/Modules/ruby.cxx Modified: trunk/Source/Modules/lua.cxx =================================================================== --- trunk/Source/Modules/lua.cxx 2007-10-22 21:30:19 UTC (rev 10019) +++ trunk/Source/Modules/lua.cxx 2007-10-22 21:31:09 UTC (rev 10020) @@ -704,7 +704,7 @@ String *setName = 0; // checking whether it can be set to or not appears to be a very error prone issue // I refered to the Language::variableWrapper() to find this out - bool assignable=is_assignable(n); + bool assignable=is_assignable(n) ? true : false; SwigType *type = Getattr(n, "type"); String *tm = Swig_typemap_lookup_new("globalin", n, iname, 0); if (!tm && SwigType_isarray(type)) Modified: trunk/Source/Modules/ruby.cxx =================================================================== --- trunk/Source/Modules/ruby.cxx 2007-10-22 21:30:19 UTC (rev 10019) +++ trunk/Source/Modules/ruby.cxx 2007-10-22 21:31:09 UTC (rev 10020) @@ -2958,8 +2958,8 @@ int status = SWIG_OK; int idx; bool ignored_method = GetFlag(n, "feature:ignore") ? true : false; - bool asvoid = bool( checkAttribute( n, "feature:numoutputs", "0") ); - bool initstack = bool( checkAttribute( n, "feature:initstack", "1") ); + bool asvoid = checkAttribute( n, "feature:numoutputs", "0") ? true : false; + bool initstack = checkAttribute( n, "feature:initstack", "1") ? true : false; if (Cmp(storage, "virtual") == 0) { if (Cmp(value, "0") == 0) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wsf...@us...> - 2007-11-10 21:10:18
|
Revision: 10099 http://swig.svn.sourceforge.net/swig/?rev=10099&view=rev Author: wsfulton Date: 2007-11-10 13:10:17 -0800 (Sat, 10 Nov 2007) Log Message: ----------- Changes to compile with VC++6 Modified Paths: -------------- trunk/Source/Modules/cffi.cxx trunk/Source/Modules/csharp.cxx trunk/Source/Modules/php4.cxx trunk/Source/Modules/r.cxx Modified: trunk/Source/Modules/cffi.cxx =================================================================== --- trunk/Source/Modules/cffi.cxx 2007-11-10 00:59:02 UTC (rev 10098) +++ trunk/Source/Modules/cffi.cxx 2007-11-10 21:10:17 UTC (rev 10099) @@ -826,9 +826,9 @@ Printf(f_cl, ")\n"); emit_export(n, lisp_name); - for (Node *c = firstChild(n); c; c = nextSibling(c)) { - if (!Strcmp(nodeType(c), "cdecl")) { - emit_export(c, lispify_name(c, Getattr(c, "sym:name"), "'slotname")); + for (Node *child = firstChild(n); child; child = nextSibling(child)) { + if (!Strcmp(nodeType(child), "cdecl")) { + emit_export(child, lispify_name(child, Getattr(child, "sym:name"), "'slotname")); } } Modified: trunk/Source/Modules/csharp.cxx =================================================================== --- trunk/Source/Modules/csharp.cxx 2007-11-10 00:59:02 UTC (rev 10098) +++ trunk/Source/Modules/csharp.cxx 2007-11-10 21:10:17 UTC (rev 10099) @@ -1587,7 +1587,8 @@ // put this in classDirectorEnd ??? Printf(proxy_class_code, " private void SwigDirectorConnect() {\n"); - for (int i = first_class_dmethod; i < curr_class_dmethod; ++i) { + int i; + for (i = first_class_dmethod; i < curr_class_dmethod; ++i) { UpcallData *udata = Getitem(dmethods_seq, i); String *method = Getattr(udata, "method"); String *methid = Getattr(udata, "class_methodidx"); @@ -1596,7 +1597,7 @@ Printf(proxy_class_code, " swigDelegate%s = new SwigDelegate%s_%s(SwigDirector%s);\n", methid, proxy_class_name, methid, overname); } Printf(proxy_class_code, " %s.%s_director_connect(swigCPtr", imclass_name, proxy_class_name); - for (int i = first_class_dmethod; i < curr_class_dmethod; ++i) { + for (i = first_class_dmethod; i < curr_class_dmethod; ++i) { UpcallData *udata = Getitem(dmethods_seq, i); String *methid = Getattr(udata, "class_methodidx"); Printf(proxy_class_code, ", swigDelegate%s", methid); @@ -3756,6 +3757,7 @@ * ------------------------------------------------------------ */ int classDirectorEnd(Node *n) { + int i; String *director_classname = directorClassName(n); Wrapper *w = NewWrapper(); @@ -3768,7 +3770,7 @@ Printf(w->def, "void %s::swig_connect_director(", director_classname); - for (int i = first_class_dmethod; i < curr_class_dmethod; ++i) { + for (i = first_class_dmethod; i < curr_class_dmethod; ++i) { UpcallData *udata = Getitem(dmethods_seq, i); String *methid = Getattr(udata, "class_methodidx"); String *overname = Getattr(udata, "overname"); @@ -3794,7 +3796,7 @@ Printf(w->code, "}\n\n"); Printf(w->code, "void %s::swig_init_callbacks() {\n", director_classname); - for (int i = first_class_dmethod; i < curr_class_dmethod; ++i) { + for (i = first_class_dmethod; i < curr_class_dmethod; ++i) { UpcallData *udata = Getitem(dmethods_seq, i); String *overname = Getattr(udata, "overname"); Printf(w->code, "swig_callback%s = 0;\n", overname); Modified: trunk/Source/Modules/php4.cxx =================================================================== --- trunk/Source/Modules/php4.cxx 2007-11-10 00:59:02 UTC (rev 10098) +++ trunk/Source/Modules/php4.cxx 2007-11-10 21:10:17 UTC (rev 10099) @@ -945,7 +945,8 @@ int newobject = GetFlag(n, "feature:new"); Parm *p; - int i, numopt; + int i; + int numopt; String *tm; Wrapper *f; bool mvr = (shadow && php_version == 4 && wrapperType == membervar); @@ -1414,7 +1415,7 @@ fprintf(stderr, "Malloc failed!\n"); exit(1); } - for (int i = 0; i < max_num_of_arguments; ++i) { + for (i = 0; i < max_num_of_arguments; ++i) { arg_names[i] = NULL; } @@ -1425,7 +1426,7 @@ fprintf(stderr, "Malloc failed!\n"); exit(1); } - for (int i = 0; i < max_num_of_arguments; ++i) { + for (i = 0; i < max_num_of_arguments; ++i) { arg_values[i] = NULL; } Modified: trunk/Source/Modules/r.cxx =================================================================== --- trunk/Source/Modules/r.cxx 2007-11-10 00:59:02 UTC (rev 10098) +++ trunk/Source/Modules/r.cxx 2007-11-10 21:10:17 UTC (rev 10099) @@ -20,7 +20,8 @@ static String * getRTypeName(SwigType *t, int *outCount = NULL) { String *b = SwigType_base(t); List *els = SwigType_split(t); - int count = 0, i; + int count = 0; + int i; if(Strncmp(b, "struct ", 7) == 0) Replace(b, "struct ", "", DOH_REPLACE_FIRST); @@ -519,7 +520,7 @@ n = SwigType_typedef_resolve(tt); #endif - ParmList *parms(Getattr(n, "parms")); + ParmList *parms = Getattr(n, "parms"); if (debugMode) Printf(stderr, "parms = %p\n", parms); return ParmList_len(parms); @@ -635,7 +636,7 @@ String *setExprElements = NewString(""); String *s_paramTypes = NewString(""); - for(int i = 0; p; i++) { + for(i = 0; p; i++) { SwigType *tt = Getattr(p, "type"); SwigType *name = Getattr(p, "name"); // String *lname = Getattr(p,"lname"); @@ -2900,7 +2901,7 @@ it is for a field element. **********************/ int R::membervariableHandler(Node *n) { - SwigType *t(Getattr(n, "type")); + SwigType *t = Getattr(n, "type"); processType(t, n, NULL); processing_member_access_function = 1; member_name = Getattr(n,"sym:name"); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wsf...@us...> - 2008-02-27 15:30:03
|
Revision: 10270 http://swig.svn.sourceforge.net/swig/?rev=10270&view=rev Author: wsfulton Date: 2008-02-27 07:29:55 -0800 (Wed, 27 Feb 2008) Log Message: ----------- Set wrap:name for variables for use in special variable Modified Paths: -------------- trunk/Source/Modules/chicken.cxx trunk/Source/Modules/guile.cxx trunk/Source/Modules/mzscheme.cxx trunk/Source/Modules/ocaml.cxx trunk/Source/Modules/perl5.cxx trunk/Source/Modules/python.cxx trunk/Source/Modules/ruby.cxx trunk/Source/Modules/tcl8.cxx Modified: trunk/Source/Modules/chicken.cxx =================================================================== --- trunk/Source/Modules/chicken.cxx 2008-02-27 13:09:52 UTC (rev 10269) +++ trunk/Source/Modules/chicken.cxx 2008-02-27 15:29:55 UTC (rev 10270) @@ -709,6 +709,8 @@ if (overname) { Append(wname, overname); } + Setattr(n, "wrap:name", wname); + // Check for interrupts Printv(f->code, "C_trace(\"", scmname, "\");\n", NIL); @@ -907,6 +909,7 @@ if (1 || (SwigType_type(t) != T_USER) || (isPointer(t))) { + Setattr(n, "wrap:name", wname); Printv(f->def, "static ", "void ", wname, "(C_word, C_word, C_word) C_noret;\n", NIL); Printv(f->def, "static ", "void ", wname, "(C_word argc, C_word closure, " "C_word continuation) {\n", NIL); Modified: trunk/Source/Modules/guile.cxx =================================================================== --- trunk/Source/Modules/guile.cxx 2008-02-27 13:09:52 UTC (rev 10269) +++ trunk/Source/Modules/guile.cxx 2008-02-27 15:29:55 UTC (rev 10270) @@ -1162,6 +1162,7 @@ // Build the name for scheme. proc_name = NewString(iname); Replaceall(proc_name, "_", "-"); + Setattr(n, "wrap:name", proc_name); if (1 || (SwigType_type(t) != T_USER) || (is_a_pointer(t))) { Modified: trunk/Source/Modules/mzscheme.cxx =================================================================== --- trunk/Source/Modules/mzscheme.cxx 2008-02-27 13:09:52 UTC (rev 10269) +++ trunk/Source/Modules/mzscheme.cxx 2008-02-27 15:29:55 UTC (rev 10270) @@ -522,6 +522,7 @@ // Build the name for scheme. Printv(proc_name, iname, NIL); Replaceall(proc_name, "_", "-"); + Setattr(n, "wrap:name", proc_name); if ((SwigType_type(t) != T_USER) || (is_a_pointer(t))) { Modified: trunk/Source/Modules/ocaml.cxx =================================================================== --- trunk/Source/Modules/ocaml.cxx 2008-02-27 13:09:52 UTC (rev 10269) +++ trunk/Source/Modules/ocaml.cxx 2008-02-27 15:29:55 UTC (rev 10270) @@ -795,6 +795,7 @@ // Build the name for scheme. Printv(proc_name, iname, NIL); + Setattr(n, "wrap:name", proc_name); Printf(f->def, "SWIGEXT CAML_VALUE %s(CAML_VALUE args) {\n", var_name); // Printv(f->def, "#define FUNC_NAME \"", proc_name, "\"", NIL); Modified: trunk/Source/Modules/perl5.cxx =================================================================== --- trunk/Source/Modules/perl5.cxx 2008-02-27 13:09:52 UTC (rev 10269) +++ trunk/Source/Modules/perl5.cxx 2008-02-27 15:29:55 UTC (rev 10270) @@ -782,6 +782,7 @@ /* Create a Perl function for setting the variable value */ if (!GetFlag(n, "feature:immutable")) { + Setattr(n, "wrap:name", set_name); Printf(setf->def, "SWIGCLASS_STATIC int %s(pTHX_ SV* sv, MAGIC * SWIGUNUSEDPARM(mg)) {\n", set_name); Printv(setf->code, tab4, "MAGIC_PPERL\n", NIL); @@ -804,6 +805,7 @@ } /* Now write a function to evaluate the variable */ + Setattr(n, "wrap:name", get_name); int addfail = 0; Printf(getf->def, "SWIGCLASS_STATIC int %s(pTHX_ SV *sv, MAGIC *SWIGUNUSEDPARM(mg)) {\n", get_name); Printv(getf->code, tab4, "MAGIC_PPERL\n", NIL); Modified: trunk/Source/Modules/python.cxx =================================================================== --- trunk/Source/Modules/python.cxx 2008-02-27 13:09:52 UTC (rev 10269) +++ trunk/Source/Modules/python.cxx 2008-02-27 15:29:55 UTC (rev 10270) @@ -2178,6 +2178,7 @@ /* Create a function for setting the value of the variable */ if (assignable) { + Setattr(n, "wrap:name", varsetname); Printf(setf->def, "SWIGINTERN int %s(PyObject *_val) {", varsetname); if ((tm = Swig_typemap_lookup_new("varin", n, name, 0))) { Replaceall(tm, "$source", "_val"); @@ -2208,6 +2209,7 @@ Wrapper_print(setf, f_wrappers); /* Create a function for getting the value of a variable */ + Setattr(n, "wrap:name", vargetname); int addfail = 0; Printf(getf->def, "SWIGINTERN PyObject *%s(void) {", vargetname); Wrapper_add_local(getf, "pyobj", "PyObject *pyobj = 0"); Modified: trunk/Source/Modules/ruby.cxx =================================================================== --- trunk/Source/Modules/ruby.cxx 2008-02-27 13:09:52 UTC (rev 10269) +++ trunk/Source/Modules/ruby.cxx 2008-02-27 15:29:55 UTC (rev 10270) @@ -2096,6 +2096,7 @@ int addfail = 0; String *getname = Swig_name_get(iname); getfname = Swig_name_wrapper(getname); + Setattr(n, "wrap:name", getfname); Printv(getf->def, "SWIGINTERN VALUE\n", getfname, "(", NIL); Printf(getf->def, "VALUE self"); Printf(getf->def, ") {"); @@ -2130,6 +2131,7 @@ String *setname = Swig_name_set(iname); setfname = Swig_name_wrapper(setname); + Setattr(n, "wrap:name", setfname); Printv(setf->def, "SWIGINTERN VALUE\n", setfname, "(VALUE self, ", NIL); Printf(setf->def, "VALUE _val) {"); tm = Swig_typemap_lookup_new("varin", n, name, 0); Modified: trunk/Source/Modules/tcl8.cxx =================================================================== --- trunk/Source/Modules/tcl8.cxx 2008-02-27 13:09:52 UTC (rev 10269) +++ trunk/Source/Modules/tcl8.cxx 2008-02-27 15:29:55 UTC (rev 10270) @@ -562,6 +562,7 @@ getf = NewWrapper(); String *getname = Swig_name_get(iname); String *getfname = Swig_name_wrapper(getname); + Setattr(n, "wrap:name", getfname); Printv(getf->def, "SWIGINTERN const char *", getfname, "(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, char *name1, char *name2, int flags) {", NIL); Wrapper_add_local(getf, "value", "Tcl_Obj *value = 0"); if ((tm = Swig_typemap_lookup_new("varout", n, name, 0))) { @@ -593,6 +594,7 @@ setf = NewWrapper(); setname = Swig_name_set(iname); setfname = Swig_name_wrapper(setname); + Setattr(n, "wrap:name", setfname); if (setf) { Printv(setf->def, "SWIGINTERN const char *", setfname, "(ClientData clientData SWIGUNUSED, Tcl_Interp *interp, char *name1, char *name2 SWIGUNUSED, int flags) {", NIL); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wsf...@us...> - 2008-02-28 23:14:11
|
Revision: 10281 http://swig.svn.sourceforge.net/swig/?rev=10281&view=rev Author: wsfulton Date: 2008-02-28 15:14:07 -0800 (Thu, 28 Feb 2008) Log Message: ----------- simpler error display for method names using new Swig_name_decl() Modified Paths: -------------- trunk/Source/Modules/allocate.cxx trunk/Source/Modules/lang.cxx trunk/Source/Modules/overload.cxx Modified: trunk/Source/Modules/allocate.cxx =================================================================== --- trunk/Source/Modules/allocate.cxx 2008-02-28 23:12:16 UTC (rev 10280) +++ trunk/Source/Modules/allocate.cxx 2008-02-28 23:14:07 UTC (rev 10281) @@ -613,7 +613,7 @@ if (na) { Swig_warning(WARN_TYPE_ABSTRACT, Getfile(n), Getline(n), "Class '%s' might be abstract, " "no constructors generated,\n", SwigType_namestr(Getattr(n, "name"))); - Swig_warning(WARN_TYPE_ABSTRACT, Getfile(na), Getline(na), " method '%s' might not be implemented.\n", SwigType_namestr(Getattr(na, "name"))); + Swig_warning(WARN_TYPE_ABSTRACT, Getfile(na), Getline(na), "Method %s might not be implemented.\n", Swig_name_decl(na)); if (!Getattr(n, "abstract")) { List *abstract = NewList(); Append(abstract, na); Modified: trunk/Source/Modules/lang.cxx =================================================================== --- trunk/Source/Modules/lang.cxx 2008-02-28 23:12:16 UTC (rev 10280) +++ trunk/Source/Modules/lang.cxx 2008-02-28 23:14:07 UTC (rev 10281) @@ -2300,8 +2300,6 @@ } /* Check symbol name for template. If not renamed. Issue a warning */ - /* Printf(stdout,"sym:name = %s\n", symname); */ - if (!validIdentifier(symname)) { Swig_warning(WARN_LANG_IDENTIFIER, input_file, line_number, "Can't wrap class %s unless renamed to a valid identifier.\n", SwigType_namestr(symname)); return SWIG_NOWRAP; @@ -2481,8 +2479,7 @@ return SWIG_NOWRAP; if (Extend) { - /* extend default constructor can be safely ignored if there is - already one */ + /* extend default constructor can be safely ignored if there is already one */ int num_required = ParmList_numrequired(Getattr(n, "parms")); if ((num_required == 0) && Getattr(CurrentClass, "has_default_constructor")) { return SWIG_NOWRAP; @@ -2495,8 +2492,7 @@ } } - /* clean protected overloaded constructors, in case they are not - needed anymore */ + /* clean protected overloaded constructors, in case they are not needed anymore */ Node *over = Swig_symbol_isoverloaded(n); if (over && !Getattr(CurrentClass, "sym:cleanconstructor")) { int dirclass = Swig_directorclass(CurrentClass); @@ -2546,15 +2542,10 @@ if (Getattr(over, "copy_constructor")) over = Getattr(over, "sym:nextSibling"); if (over != n) { - String *oname = NewStringf("%s::%s", ClassName, Swig_scopename_last(SwigType_namestr(name))); - String *cname = NewStringf("%s::%s", ClassName, Swig_scopename_last(SwigType_namestr(Getattr(over, "name")))); - SwigType *decl = Getattr(n, "decl"); Swig_warning(WARN_LANG_OVERLOAD_CONSTRUCT, input_file, line_number, - "Overloaded constructor ignored. %s\n", SwigType_str(decl, SwigType_namestr(oname))); + "Overloaded constructor ignored. %s\n", Swig_name_decl(n)); Swig_warning(WARN_LANG_OVERLOAD_CONSTRUCT, Getfile(over), Getline(over), - "Previous declaration is %s\n", SwigType_str(Getattr(over, "decl"), SwigType_namestr(cname))); - Delete(oname); - Delete(cname); + "Previous declaration is %s\n", Swig_name_decl(over)); } else { constructorHandler(n); } Modified: trunk/Source/Modules/overload.cxx =================================================================== --- trunk/Source/Modules/overload.cxx 2008-02-28 23:12:16 UTC (rev 10280) +++ trunk/Source/Modules/overload.cxx 2008-02-28 23:14:07 UTC (rev 10281) @@ -126,13 +126,13 @@ String *t2 = Getattr(p2, "tmap:typecheck:precedence"); if ((!t1) && (!nodes[i].error)) { Swig_warning(WARN_TYPEMAP_TYPECHECK, Getfile(nodes[i].n), Getline(nodes[i].n), - "Overloaded %s(%s) not supported (no type checking rule for '%s').\n", - Getattr(nodes[i].n, "name"), ParmList_str_defaultargs(Getattr(nodes[i].n, "parms")), SwigType_str(Getattr(p1, "type"), 0)); + "Overloaded method %s not supported (no type checking rule for '%s').\n", + Swig_name_decl(nodes[i].n), SwigType_str(Getattr(p1, "type"), 0)); nodes[i].error = 1; } else if ((!t2) && (!nodes[j].error)) { Swig_warning(WARN_TYPEMAP_TYPECHECK, Getfile(nodes[j].n), Getline(nodes[j].n), - "Overloaded %s(%s) not supported (no type checking rule for '%s').\n", - Getattr(nodes[j].n, "name"), ParmList_str_defaultargs(Getattr(nodes[j].n, "parms")), SwigType_str(Getattr(p2, "type"), 0)); + "Overloaded method %s not supported (no type checking rule for '%s').\n", + Swig_name_decl(nodes[j].n), SwigType_str(Getattr(p2, "type"), 0)); nodes[j].error = 1; } if (t1 && t2) { @@ -223,14 +223,13 @@ if (!nodes[j].error) { if (script_lang_wrapping) { Swig_warning(WARN_LANG_OVERLOAD_CONST, Getfile(nodes[j].n), Getline(nodes[j].n), - "Overloaded %s(%s) const ignored. Non-const method at %s:%d used.\n", - Getattr(nodes[j].n, "name"), ParmList_errorstr(nodes[j].parms), Getfile(nodes[i].n), Getline(nodes[i].n)); + "Overloaded method %s ignored. Non-const method %s at %s:%d used.\n", + Swig_name_decl(nodes[j].n), Swig_name_decl(nodes[i].n), Getfile(nodes[i].n), Getline(nodes[i].n)); } else { if (!Getattr(nodes[j].n, "overload:ignore")) Swig_warning(WARN_LANG_OVERLOAD_IGNORED, Getfile(nodes[j].n), Getline(nodes[j].n), - "Overloaded method %s(%s) ignored. Method %s(%s) const at %s:%d used.\n", - Getattr(nodes[j].n, "name"), ParmList_errorstr(nodes[j].parms), - Getattr(nodes[i].n, "name"), ParmList_errorstr(nodes[i].parms), Getfile(nodes[i].n), Getline(nodes[i].n)); + "Overloaded method %s ignored. Method %s at %s:%d used.\n", + Swig_name_decl(nodes[j].n), Swig_name_decl(nodes[i].n), Getfile(nodes[i].n), Getline(nodes[i].n)); } } nodes[j].error = 1; @@ -239,14 +238,13 @@ if (!nodes[j].error) { if (script_lang_wrapping) { Swig_warning(WARN_LANG_OVERLOAD_CONST, Getfile(nodes[j].n), Getline(nodes[j].n), - "Overloaded %s(%s) const ignored. Non-const method at %s:%d used.\n", - Getattr(nodes[j].n, "name"), ParmList_errorstr(nodes[j].parms), Getfile(nodes[i].n), Getline(nodes[i].n)); + "Overloaded method %s ignored. Non-const method %s at %s:%d used.\n", + Swig_name_decl(nodes[j].n), Swig_name_decl(nodes[i].n), Getfile(nodes[i].n), Getline(nodes[i].n)); } else { if (!Getattr(nodes[j].n, "overload:ignore")) Swig_warning(WARN_LANG_OVERLOAD_IGNORED, Getfile(nodes[j].n), Getline(nodes[j].n), - "Overloaded method %s(%s) const ignored. Method %s(%s) at %s:%d used.\n", - Getattr(nodes[j].n, "name"), ParmList_errorstr(nodes[j].parms), - Getattr(nodes[i].n, "name"), ParmList_errorstr(nodes[i].parms), Getfile(nodes[i].n), Getline(nodes[i].n)); + "Overloaded method %s ignored. Method %s at %s:%d used.\n", + Swig_name_decl(nodes[j].n), Swig_name_decl(nodes[i].n), Getfile(nodes[i].n), Getline(nodes[i].n)); } } nodes[j].error = 1; @@ -260,19 +258,15 @@ if (!nodes[j].error) { if (script_lang_wrapping) { Swig_warning(WARN_LANG_OVERLOAD_SHADOW, Getfile(nodes[j].n), Getline(nodes[j].n), - "Overloaded %s(%s)%s is shadowed by %s(%s)%s at %s:%d.\n", - Getattr(nodes[j].n, "name"), ParmList_errorstr(nodes[j].parms), - SwigType_isconst(Getattr(nodes[j].n, "decl")) ? " const" : "", - Getattr(nodes[i].n, "name"), ParmList_errorstr(nodes[i].parms), - SwigType_isconst(Getattr(nodes[i].n, "decl")) ? " const" : "", Getfile(nodes[i].n), Getline(nodes[i].n)); + "Overloaded method %s is shadowed by %s at %s:%d.\n", + Swig_name_decl(nodes[j].n), Swig_name_decl(nodes[i].n), + Getfile(nodes[i].n), Getline(nodes[i].n)); } else { if (!Getattr(nodes[j].n, "overload:ignore")) Swig_warning(WARN_LANG_OVERLOAD_IGNORED, Getfile(nodes[j].n), Getline(nodes[j].n), - "Overloaded method %s(%s)%s ignored. Method %s(%s)%s at %s:%d used.\n", - Getattr(nodes[j].n, "name"), ParmList_errorstr(nodes[j].parms), - SwigType_isconst(Getattr(nodes[j].n, "decl")) ? " const" : "", - Getattr(nodes[i].n, "name"), ParmList_errorstr(nodes[i].parms), - SwigType_isconst(Getattr(nodes[i].n, "decl")) ? " const" : "", Getfile(nodes[i].n), Getline(nodes[i].n)); + "Overloaded method %s ignored. Method %s at %s:%d used.\n", + Swig_name_decl(nodes[j].n), Swig_name_decl(nodes[i].n), + Getfile(nodes[i].n), Getline(nodes[i].n)); } nodes[j].error = 1; } @@ -497,8 +491,8 @@ if (!Getattr(pj, "tmap:in:SWIGTYPE") && Getattr(pj, "tmap:typecheck:SWIGTYPE")) { /* we emit a warning if the argument defines the 'in' typemap, but not the 'typecheck' one */ Swig_warning(WARN_TYPEMAP_TYPECHECK_UNDEF, Getfile(ni), Getline(ni), - "Overloaded %s(%s) with no explicit typecheck typemap for arg %d of type '%s'\n", - Getattr(n, "name"), ParmList_str_defaultargs(pi), j + 1, SwigType_str(Getattr(pj, "type"), 0)); + "Overloaded method %s with no explicit typecheck typemap for arg %d of type '%s'\n", + Swig_name_decl(n), j, SwigType_str(Getattr(pj, "type"), 0)); } Parm *pj1 = Getattr(pj, "tmap:in:next"); if (pj1) @@ -670,8 +664,8 @@ if (!Getattr(pj, "tmap:in:SWIGTYPE") && Getattr(pj, "tmap:typecheck:SWIGTYPE")) { /* we emit a warning if the argument defines the 'in' typemap, but not the 'typecheck' one */ Swig_warning(WARN_TYPEMAP_TYPECHECK_UNDEF, Getfile(ni), Getline(ni), - "Overloaded %s(%s) with no explicit typecheck typemap for arg %d of type '%s'\n", - Getattr(n, "name"), ParmList_str_defaultargs(pi), j + 1, SwigType_str(Getattr(pj, "type"), 0)); + "Overloaded method %s with no explicit typecheck typemap for arg %d of type '%s'\n", + Swig_name_decl(n), j, SwigType_str(Getattr(pj, "type"), 0)); } Parm *pj1 = Getattr(pj, "tmap:in:next"); if (pj1) @@ -764,8 +758,8 @@ if (!Getattr(pj, "tmap:in:SWIGTYPE") && Getattr(pj, "tmap:typecheck:SWIGTYPE")) { /* we emit a warning if the argument defines the 'in' typemap, but not the 'typecheck' one */ Swig_warning(WARN_TYPEMAP_TYPECHECK_UNDEF, Getfile(ni), Getline(ni), - "Overloaded %s(%s) with no explicit typecheck typemap for arg %d of type '%s'\n", - Getattr(n, "name"), ParmList_str_defaultargs(pi), j + 1, SwigType_str(Getattr(pj, "type"), 0)); + "Overloaded method %s with no explicit typecheck typemap for arg %d of type '%s'\n", + Swig_name_decl(n), j, SwigType_str(Getattr(pj, "type"), 0)); } Parm *pk = Getattr(pj, "tmap:in:next"); if (pk) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wsf...@us...> - 2008-06-29 00:19:08
|
Revision: 10607 http://swig.svn.sourceforge.net/swig/?rev=10607&view=rev Author: wsfulton Date: 2008-06-28 17:19:05 -0700 (Sat, 28 Jun 2008) Log Message: ----------- fix some potential null pointer usage as reported by CoveriCoverity Prevent Modified Paths: -------------- trunk/Source/Modules/allegrocl.cxx trunk/Source/Modules/ocaml.cxx Modified: trunk/Source/Modules/allegrocl.cxx =================================================================== --- trunk/Source/Modules/allegrocl.cxx 2008-06-28 23:26:18 UTC (rev 10606) +++ trunk/Source/Modules/allegrocl.cxx 2008-06-29 00:19:05 UTC (rev 10607) @@ -2518,6 +2518,8 @@ ParmList *parms = CopyParmList(Getattr(n, "parms")); Wrapper *f = NewWrapper(); + SwigType *t = Getattr(n, "type"); + String *name = Getattr(n, "name"); String *raw_return_type = Swig_typemap_lookup("ctype", n, "", 0); SwigType *return_type = Swig_cparse_type(raw_return_type); @@ -2556,7 +2558,7 @@ if (Getattr(n, "overload:ignore")) { // if we're the last overload, make sure to force the emit // of the rest of the overloads before we leave. - Printf(stderr, "ignored overload %s(%x)\n", Getattr(n, "name"), Getattr(n, "sym:nextSibling")); + Printf(stderr, "ignored overload %s(%x)\n", name, Getattr(n, "sym:nextSibling")); if (!Getattr(n, "sym:nextSibling")) { update_package_if_needed(n); emit_buffered_defuns(n); @@ -2571,7 +2573,7 @@ int gencomma = 0; #ifdef ALLEGROCL_DEBUG - Printf(stderr, "Walking parameters for %s '%s'\n", Getattr(n, "allegrocl:kind"), Getattr(n, "name")); + Printf(stderr, "Walking parameters for %s '%s'\n", Getattr(n, "allegrocl:kind"), name); #endif // Now walk the function parameter list and generate code to get arguments String *name_and_parms = NewStringf("%s (", mangled); @@ -2625,12 +2627,16 @@ String *actioncode = emit_action(n); - String *result_convert = Swig_typemap_lookup_out("out", n, "result", f, actioncode); - Replaceall(result_convert, "$result", "lresult"); - Printf(f->code, "%s\n", result_convert); - Printf(f->code, " return lresult;\n"); - Delete(result_convert); - emit_return_variable(n, Getattr(n, "type"), f); + String *tm = Swig_typemap_lookup_out("out", n, "result", f, actioncode); + if (tm) { + Replaceall(tm, "$result", "lresult"); + Printf(f->code, "%s\n", tm); + Printf(f->code, " return lresult;\n"); + Delete(tm); + } else { + Swig_warning(WARN_TYPEMAP_OUT_UNDEF, input_file, line_number, "Unable to use return type %s in function %s.\n", SwigType_str(t, 0), name); + } + emit_return_variable(n, t, f); if (CPlusPlus) { Printf(f->code, " } catch (...) {\n"); Modified: trunk/Source/Modules/ocaml.cxx =================================================================== --- trunk/Source/Modules/ocaml.cxx 2008-06-28 23:26:18 UTC (rev 10606) +++ trunk/Source/Modules/ocaml.cxx 2008-06-29 00:19:05 UTC (rev 10607) @@ -1292,56 +1292,50 @@ * which means looking up and registering by typedef and enum name. */ int enumDeclaration(Node *n) { String *name = Getattr(n, "name"); - String *oname = name ? NewString(name) : NULL; - /* name is now fully qualified */ - String *fully_qualified_name = NewString(name); - bool seen_enum = false; - if (name_qualifier) - Delete(name_qualifier); - char *strip_position; - name_qualifier = fully_qualify_enum_name(n, NewString("")); + if (name) { + String *oname = NewString(name); + /* name is now fully qualified */ + String *fully_qualified_name = NewString(name); + bool seen_enum = false; + if (name_qualifier) + Delete(name_qualifier); + char *strip_position; + name_qualifier = fully_qualify_enum_name(n, NewString("")); - /* Recent changes have distrubed enum and template naming again. - * Will try to keep it consistent by can't guarantee much given - * that these things move around a lot. - * - * I need to figure out a way to isolate this module better. - */ - if (oname) { strip_position = strstr(Char(oname), "::"); while (strip_position) { - strip_position += 2; - oname = NewString(strip_position); - strip_position = strstr(Char(oname), "::"); + strip_position += 2; + oname = NewString(strip_position); + strip_position = strstr(Char(oname), "::"); } - } - seen_enum = oname ? (Getattr(seen_enums, fully_qualified_name) ? true : false) : false; + seen_enum = (Getattr(seen_enums, fully_qualified_name) ? true : false); - if (oname && !seen_enum) { - const_enum = true; - Printf(f_enum_to_int, "| `%s -> (match y with\n", oname); - Printf(f_int_to_enum, "| `%s -> C_enum (\n", oname); - /* * * * A note about enum name resolution * * * * - * This code should now work, but I think we can do a bit better. - * The problem I'm having is that swig isn't very precise about - * typedef name resolution. My opinion is that SwigType_typedef - * resolve_all should *always* return the enum tag if one exists, - * rather than the admittedly friendlier enclosing typedef. - * - * This would make one of the cases below unnecessary. - * * * */ - Printf(f_mlbody, "let _ = Callback.register \"%s_marker\" (`%s)\n", fully_qualified_name, oname); - if (!strncmp(Char(fully_qualified_name), "enum ", 5)) { - String *fq_noenum = NewString(Char(fully_qualified_name) + 5); - Printf(f_mlbody, - "let _ = Callback.register \"%s_marker\" (`%s)\n" "let _ = Callback.register \"%s_marker\" (`%s)\n", fq_noenum, oname, fq_noenum, name); - } + if (!seen_enum) { + const_enum = true; + Printf(f_enum_to_int, "| `%s -> (match y with\n", oname); + Printf(f_int_to_enum, "| `%s -> C_enum (\n", oname); + /* * * * A note about enum name resolution * * * * + * This code should now work, but I think we can do a bit better. + * The problem I'm having is that swig isn't very precise about + * typedef name resolution. My opinion is that SwigType_typedef + * resolve_all should *always* return the enum tag if one exists, + * rather than the admittedly friendlier enclosing typedef. + * + * This would make one of the cases below unnecessary. + * * * */ + Printf(f_mlbody, "let _ = Callback.register \"%s_marker\" (`%s)\n", fully_qualified_name, oname); + if (!strncmp(Char(fully_qualified_name), "enum ", 5)) { + String *fq_noenum = NewString(Char(fully_qualified_name) + 5); + Printf(f_mlbody, + "let _ = Callback.register \"%s_marker\" (`%s)\n" "let _ = Callback.register \"%s_marker\" (`%s)\n", fq_noenum, oname, fq_noenum, name); + } - Printf(f_enumtypes_type, "| `%s\n", oname); - Insert(fully_qualified_name, 0, "enum "); - Setattr(seen_enums, fully_qualified_name, n); + Printf(f_enumtypes_type, "| `%s\n", oname); + Insert(fully_qualified_name, 0, "enum "); + Setattr(seen_enums, fully_qualified_name, n); + } } int ret = Language::enumDeclaration(n); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |