summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2013-03-05 11:23:55 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2013-03-05 11:23:55 +0000
commit708df44e59915557aca1c5962d0dd196177b7e63 (patch)
tree156a797bbbe990a9a470e0b51da09fbadc6e5b56 /include
parent85164e551a41d6b71224a364497af76acd147d03 (diff)
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.h10
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 {