From: Marcelo M. <mar...@us...> - 2004-10-30 10:58:38
|
Update of /cvsroot/swig/SWIG/Source/Modules In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv5492/Source/Modules Modified Files: ruby.cxx Log Message: add patch 1025861 for director + exceptions, fix director + enums Index: ruby.cxx =================================================================== RCS file: /cvsroot/swig/SWIG/Source/Modules/ruby.cxx,v retrieving revision 1.64 retrieving revision 1.65 diff -C2 -d -r1.64 -r1.65 *** ruby.cxx 22 Oct 2004 07:25:41 -0000 1.64 --- ruby.cxx 30 Oct 2004 10:58:15 -0000 1.65 *************** *** 2013,2019 **** Wrapper_add_localv(w, "i", "int", "i", NIL); Printf(w->code, "args.argv = new VALUE[%d];\n", argc); ! Printf(w->code, "for (i = 0; i < %d; i++) {\n", argc); ! Printv(w->code, "args.argv[i] = Qnil;\n", NIL); ! Printv(w->code, "}\n", NIL); } else { Printv(w->code, "args.argv = 0;\n", NIL); --- 2013,2019 ---- Wrapper_add_localv(w, "i", "int", "i", NIL); Printf(w->code, "args.argv = new VALUE[%d];\n", argc); ! for (int i = 0; i < argc; i++) { ! Printf(w->code, "args.argv[%d] = obj%d;\n", i, i); ! } } else { Printv(w->code, "args.argv = 0;\n", NIL); *************** *** 2370,2378 **** /* any existing helper functions to handle this? */ if (!is_void) { if (!SwigType_isreference(return_type)) { ! Printf(w->code, "return c_result;\n"); } else { ! Printf(w->code, "return *c_result;\n"); } } --- 2370,2380 ---- /* any existing helper functions to handle this? */ if (!is_void) { + String* rettype = SwigType_str(return_type, 0); if (!SwigType_isreference(return_type)) { ! Printf(w->code, "return (%s) c_result;\n", rettype); } else { ! Printf(w->code, "return (%s) *c_result;\n", rettype); } + Delete(rettype); } |