Skip to content

Commit

Permalink
rb_scan_args_count_lead: use arguments instead of magic numbers
Browse files Browse the repository at this point in the history
  • Loading branch information
nobu committed Sep 15, 2019
1 parent 585b15d commit 44d5941
Showing 1 changed file with 7 additions and 5 deletions.
12 changes: 7 additions & 5 deletions include/ruby/ruby.h
Original file line number Diff line number Diff line change
Expand Up @@ -2370,14 +2370,16 @@ ERRORFUNC(("variable argument length doesn't match"), void rb_scan_args_length_m
rb_scan_args_count_trail(fmt, ofs+1, vari+1))

# define rb_scan_args_count_opt(fmt, ofs, vari) \
(!rb_scan_args_isdigit(fmt[1]) ? \
(!rb_scan_args_isdigit(fmt[ofs]) ? \
rb_scan_args_count_var(fmt, ofs, vari) : \
rb_scan_args_count_var(fmt, ofs+1, vari+fmt[ofs]-'0'))

# define rb_scan_args_count(fmt) \
(!rb_scan_args_isdigit(fmt[0]) ? \
rb_scan_args_count_var(fmt, 0, 0) : \
rb_scan_args_count_opt(fmt, 1, fmt[0]-'0'))
# define rb_scan_args_count_lead(fmt, ofs, vari) \
(!rb_scan_args_isdigit(fmt[ofs]) ? \
rb_scan_args_count_var(fmt, ofs, vari) : \
rb_scan_args_count_opt(fmt, ofs+1, vari+fmt[ofs]-'0'))

# define rb_scan_args_count(fmt) rb_scan_args_count_lead(fmt, 0, 0)

# if defined(__has_attribute) && __has_attribute(diagnose_if)
# define rb_scan_args_verify(fmt, varc) (void)0
Expand Down

0 comments on commit 44d5941

Please sign in to comment.