Feature #17752 » ruby-BIGNUM_EMBED_LEN_MAX.patch
| include/ruby/internal/core/rbasic.h | ||
|---|---|---|
|
RBIMPL_CAST((int)(sizeof(VALUE[RVALUE_EMBED_LEN_MAX]) / (sizeof(T))))
|
||
|
/** @endcond */
|
||
|
enum ruby_rvalue_flags { RVALUE_EMBED_LEN_MAX = 3 };
|
||
|
#define _RVALUE_EMBED_LEN_MAX 3
|
||
|
enum ruby_rvalue_flags { RVALUE_EMBED_LEN_MAX = _RVALUE_EMBED_LEN_MAX };
|
||
|
struct
|
||
|
RUBY_ALIGNAS(SIZEOF_VALUE)
|
||
|
-- a/internal/bignum.h
|
||
|
++ b/internal/bignum.h
|
||
| ... | ... | |
|
#define BIGNUM_EMBED_LEN_SHIFT \
|
||
|
(FL_USHIFT+3) /* bit offset of BIGNUM_EMBED_LEN_MASK */
|
||
|
#ifndef BIGNUM_EMBED_LEN_MAX
|
||
|
# if (SIZEOF_VALUE*RVALUE_EMBED_LEN_MAX/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*RVALUE_EMBED_LEN_MAX/SIZEOF_ACTUAL_BDIGIT)
|
||
|
# else
|
||
|
# define BIGNUM_EMBED_LEN_MAX ((1 << BIGNUM_EMBED_LEN_NUMBITS)-1)
|
||