From 7316302483182a73136b00ad368585e551cbd86f Mon Sep 17 00:00:00 2001 From: marcandre Date: Wed, 14 Mar 2012 21:10:34 +0000 Subject: * include/ruby/intern.h: Add rb_check_arity, rb_error_arity [#6085] * array.c: Use rb_check_arity / rb_error_arity * class.c: ditto * enumerator.c: ditto * eval.c: ditto * file.c: ditto * hash.c: ditto * numeric.c: ditto * proc.c: ditto * process.c: ditto * random.c: ditto * re.c: ditto * signal.c: ditto * string.c: ditto * struct.c: ditto * transcode.c: ditto * vm_eval.c: ditto * vm_insnhelper.c: ditto & implementation of rb_error_arity * test/ruby/test_arity.rb: tests for above git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35024 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- eval.c | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) (limited to 'eval.c') diff --git a/eval.c b/eval.c index 34ff32c0cf..43ddb4197c 100644 --- a/eval.c +++ b/eval.c @@ -555,7 +555,7 @@ make_exception(int argc, VALUE *argv, int isstr) } break; default: - rb_raise(rb_eArgError, "wrong number of arguments (%d for 0..3)", argc); + rb_check_arity(argc, 0, 3); break; } if (argc > 0) { @@ -889,10 +889,7 @@ rb_mod_mix_into(int argc, VALUE *argv, VALUE klass) st_table *const_tbl = 0, *method_tbl = 0; int i = 0; - if (argc < 1 || argc > 3) { - wrong_args: - rb_raise(rb_eArgError, "wrong number of arguments (%d for 1)", argc); - } + rb_check_arity(argc, 1, 3); module = argv[i++]; switch (TYPE(module)) { @@ -922,7 +919,7 @@ rb_mod_mix_into(int argc, VALUE *argv, VALUE klass) } methods = tmp; } - if (i < argc) goto wrong_args; + if (i < argc) rb_raise(rb_eArgError, "wrong arguments"); if (!NIL_P(constants)) { VALUE hash = rb_hash_new(); for (i = 0; i < RARRAY_LEN(constants); ++i) { @@ -1015,9 +1012,7 @@ rb_obj_extend(int argc, VALUE *argv, VALUE obj) { int i; - if (argc == 0) { - rb_raise(rb_eArgError, "wrong number of arguments (at least 1)"); - } + rb_check_arity(argc, 1, UNLIMITED_ARGUMENTS); for (i = 0; i < argc; i++) Check_Type(argv[i], T_MODULE); while (argc--) { -- cgit v1.2.3