From b29252b2b368d3961b859357e5cbf2e06f861420 Mon Sep 17 00:00:00 2001 From: Marcelo Matus Date: Sun, 22 Jan 2006 00:01:54 +0000 Subject: [PATCH] solve label warnings git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@8507 626c5289-ae23-0410-ae9c-e8d60b6d4f22 --- Source/Modules/ruby.cxx | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Source/Modules/ruby.cxx b/Source/Modules/ruby.cxx index 977b7d1f5..99d34fce0 100644 --- a/Source/Modules/ruby.cxx +++ b/Source/Modules/ruby.cxx @@ -1382,12 +1382,14 @@ public: if (current == MEMBER_FUNC || current == MEMBER_VAR || ctor_director) { Printf(f->code, "argc = nargs + 1;\n"); Printf(f->code, "argv[0] = self;\n"); - Printf(f->code, "for (ii = 1; (ii < argc) && (ii < %d); ii++) {\n", maxargs); + Printf(f->code, "if (argc > %d) SWIG_fail;\n", maxargs + 1); + Printf(f->code, "for (ii = 1; (ii < argc); ii++) {\n"); Printf(f->code, "argv[ii] = args[ii-1];\n"); Printf(f->code, "}\n"); } else { Printf(f->code, "argc = nargs;\n"); - Printf(f->code, "for (ii = 0; (ii < argc) && (ii < %d); ii++) {\n", maxargs); + Printf(f->code, "if (argc > %d) SWIG_fail;\n", maxargs); + Printf(f->code, "for (ii = 0; (ii < argc); ii++) {\n"); Printf(f->code, "argv[ii] = args[ii];\n"); Printf(f->code, "}\n"); }