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 --- include/ruby/intern.h | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'include') diff --git a/include/ruby/intern.h b/include/ruby/intern.h index 763472589b..cf36aa6265 100644 --- a/include/ruby/intern.h +++ b/include/ruby/intern.h @@ -256,6 +256,12 @@ int rb_sourceline(void); const char *rb_sourcefile(void); VALUE rb_check_funcall(VALUE, ID, int, VALUE*); +NORETURN(void rb_error_arity(int, int, int)); +#define rb_check_arity(argc, min, max) do { \ + if (((argc) < (min)) || ((argc) > (max) && (max) != UNLIMITED_ARGUMENTS)) \ + rb_error_arity(argc, min, max); \ + } while(0) + #if defined(NFDBITS) && defined(HAVE_RB_FD_INIT) typedef struct { int maxfd; -- cgit v1.2.3