mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
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
This commit is contained in:
parent
cb57336e86
commit
7570864267
2 changed files with 11 additions and 6 deletions
|
@ -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 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_LEN_MAX ROBJECT_EMBED_LEN_MAX
|
||||||
#define ROBJECT_EMBED ROBJECT_EMBED
|
#define ROBJECT_EMBED ROBJECT_EMBED
|
||||||
enum ruby_robject_flags {
|
enum ruby_robject_flags {
|
||||||
ROBJECT_EMBED_LEN_MAX = 3,
|
ROBJECT_EMBED_LEN_MAX = RVALUE_EMBED_LEN_MAX,
|
||||||
ROBJECT_EMBED = RUBY_FL_USER1,
|
ROBJECT_EMBED = RUBY_FL_USER1,
|
||||||
|
|
||||||
ROBJECT_ENUM_END
|
ROBJECT_ENUM_END
|
||||||
|
@ -972,7 +977,7 @@ enum ruby_rstring_flags {
|
||||||
RSTRING_EMBED_LEN_MASK = (RUBY_FL_USER2|RUBY_FL_USER3|RUBY_FL_USER4|
|
RSTRING_EMBED_LEN_MASK = (RUBY_FL_USER2|RUBY_FL_USER3|RUBY_FL_USER4|
|
||||||
RUBY_FL_USER5|RUBY_FL_USER6),
|
RUBY_FL_USER5|RUBY_FL_USER6),
|
||||||
RSTRING_EMBED_LEN_SHIFT = (RUBY_FL_USHIFT+2),
|
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_FSTR = RUBY_FL_USER17,
|
||||||
|
|
||||||
RSTRING_ENUM_END
|
RSTRING_ENUM_END
|
||||||
|
@ -1018,7 +1023,7 @@ struct RString {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
enum ruby_rarray_flags {
|
enum ruby_rarray_flags {
|
||||||
RARRAY_EMBED_LEN_MAX = 3,
|
RARRAY_EMBED_LEN_MAX = RVALUE_EMBED_LEN_MAX,
|
||||||
RARRAY_EMBED_FLAG = RUBY_FL_USER1,
|
RARRAY_EMBED_FLAG = RUBY_FL_USER1,
|
||||||
/* RUBY_FL_USER2 is for ELTS_SHARED */
|
/* RUBY_FL_USER2 is for ELTS_SHARED */
|
||||||
RARRAY_EMBED_LEN_MASK = (RUBY_FL_USER4|RUBY_FL_USER3),
|
RARRAY_EMBED_LEN_MASK = (RUBY_FL_USER4|RUBY_FL_USER3),
|
||||||
|
|
|
@ -673,8 +673,8 @@ rb_fix_mod_fix(VALUE x, VALUE y)
|
||||||
|
|
||||||
#define BIGNUM_EMBED_LEN_NUMBITS 3
|
#define BIGNUM_EMBED_LEN_NUMBITS 3
|
||||||
#ifndef BIGNUM_EMBED_LEN_MAX
|
#ifndef BIGNUM_EMBED_LEN_MAX
|
||||||
# if (SIZEOF_VALUE*3/SIZEOF_ACTUAL_BDIGIT) < (1 << BIGNUM_EMBED_LEN_NUMBITS)-1
|
# if (SIZEOF_VALUE*RVALUE_EMBED_LEN_MAX/SIZEOF_ACTUAL_BDIGIT) < (1 << BIGNUM_EMBED_LEN_NUMBITS)-1
|
||||||
# define BIGNUM_EMBED_LEN_MAX (SIZEOF_VALUE*3/SIZEOF_ACTUAL_BDIGIT)
|
# define BIGNUM_EMBED_LEN_MAX (SIZEOF_VALUE*RVALUE_EMBED_LEN_MAX/SIZEOF_ACTUAL_BDIGIT)
|
||||||
# else
|
# else
|
||||||
# define BIGNUM_EMBED_LEN_MAX ((1 << BIGNUM_EMBED_LEN_NUMBITS)-1)
|
# define BIGNUM_EMBED_LEN_MAX ((1 << BIGNUM_EMBED_LEN_NUMBITS)-1)
|
||||||
# endif
|
# endif
|
||||||
|
@ -830,7 +830,7 @@ extern void ruby_init_setproctitle(int argc, char *argv[]);
|
||||||
#define RSTRUCT_EMBED_LEN_SHIFT RSTRUCT_EMBED_LEN_SHIFT
|
#define RSTRUCT_EMBED_LEN_SHIFT RSTRUCT_EMBED_LEN_SHIFT
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
RSTRUCT_EMBED_LEN_MAX = 3,
|
RSTRUCT_EMBED_LEN_MAX = RVALUE_EMBED_LEN_MAX,
|
||||||
RSTRUCT_EMBED_LEN_MASK = (RUBY_FL_USER2|RUBY_FL_USER1),
|
RSTRUCT_EMBED_LEN_MASK = (RUBY_FL_USER2|RUBY_FL_USER1),
|
||||||
RSTRUCT_EMBED_LEN_SHIFT = (RUBY_FL_USHIFT+1),
|
RSTRUCT_EMBED_LEN_SHIFT = (RUBY_FL_USHIFT+1),
|
||||||
RSTRUCT_TRANSIENT_FLAG = FL_USER3,
|
RSTRUCT_TRANSIENT_FLAG = FL_USER3,
|
||||||
|
|
Loading…
Reference in a new issue