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. |