diff options
author | mrkn <mrkn@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2019-02-14 15:29:04 +0000 |
---|---|---|
committer | mrkn <mrkn@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2019-02-14 15:29:04 +0000 |
commit | 7570864267cb258e2d29881e37cb3b8a6930727a (patch) | |
tree | deecc89b65c61da5f198204d618c66b200c01ae3 /include | |
parent | cb57336e86dbe9c21fd8bc447912256843fe6b26 (diff) |
Introduce RVALUE_EMBED_LEN_MAX to remove a magic number
* include/ruby/ruby.h: replace a magic number with RVALUE_EMBED_LEN_MAX,
which indicates the number of VALUE elements can be embedded in a RVALUE.
* internal.h: ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67076 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'include')
-rw-r--r-- | include/ruby/ruby.h | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/include/ruby/ruby.h b/include/ruby/ruby.h index d983114e0a..11387b540a 100644 --- a/include/ruby/ruby.h +++ b/include/ruby/ruby.h @@ -903,10 +903,15 @@ VALUE rb_obj_reveal(VALUE obj, VALUE klass); /* do not use this API to change kl #define RBASIC_CLASS(obj) (RBASIC(obj)->klass) +#define RVALUE_EMBED_LEN_MAX RVALUE_EMBED_LEN_MAX +enum ruby_rvalue_flags { + RVALUE_EMBED_LEN_MAX = 3, +}; + #define ROBJECT_EMBED_LEN_MAX ROBJECT_EMBED_LEN_MAX #define ROBJECT_EMBED ROBJECT_EMBED enum ruby_robject_flags { - ROBJECT_EMBED_LEN_MAX = 3, + ROBJECT_EMBED_LEN_MAX = RVALUE_EMBED_LEN_MAX, ROBJECT_EMBED = RUBY_FL_USER1, ROBJECT_ENUM_END @@ -972,7 +977,7 @@ enum ruby_rstring_flags { RSTRING_EMBED_LEN_MASK = (RUBY_FL_USER2|RUBY_FL_USER3|RUBY_FL_USER4| RUBY_FL_USER5|RUBY_FL_USER6), RSTRING_EMBED_LEN_SHIFT = (RUBY_FL_USHIFT+2), - RSTRING_EMBED_LEN_MAX = (int)((sizeof(VALUE)*3)/sizeof(char)-1), + RSTRING_EMBED_LEN_MAX = (int)((sizeof(VALUE)*RVALUE_EMBED_LEN_MAX)/sizeof(char)-1), RSTRING_FSTR = RUBY_FL_USER17, RSTRING_ENUM_END @@ -1018,7 +1023,7 @@ struct RString { #endif enum ruby_rarray_flags { - RARRAY_EMBED_LEN_MAX = 3, + RARRAY_EMBED_LEN_MAX = RVALUE_EMBED_LEN_MAX, RARRAY_EMBED_FLAG = RUBY_FL_USER1, /* RUBY_FL_USER2 is for ELTS_SHARED */ RARRAY_EMBED_LEN_MASK = (RUBY_FL_USER4|RUBY_FL_USER3), |