diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2013-03-05 11:23:55 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2013-03-05 11:23:55 +0000 |
commit | 708df44e59915557aca1c5962d0dd196177b7e63 (patch) | |
tree | 156a797bbbe990a9a470e0b51da09fbadc6e5b56 /include | |
parent | 85164e551a41d6b71224a364497af76acd147d03 (diff) | |
download | ruby-708df44e59915557aca1c5962d0dd196177b7e63.tar.gz |
intern.h: inline function rb_check_arity
* include/ruby/intern.h (rb_check_arity): make a static inline
function so it can be used as an expression and argc would be
evaulated only once.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@39598 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'include')
-rw-r--r-- | include/ruby/intern.h | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/include/ruby/intern.h b/include/ruby/intern.h index 5ff17a4971..063c5d059e 100644 --- a/include/ruby/intern.h +++ b/include/ruby/intern.h @@ -266,10 +266,12 @@ 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) +static inline void +rb_check_arity(int argc, int min, int max) +{ + if ((argc < min) || (max != UNLIMITED_ARGUMENTS && argc > max)) + rb_error_arity(argc, min, max); +} #if defined(NFDBITS) && defined(HAVE_RB_FD_INIT) typedef struct { |