diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2014-03-13 03:09:58 +0900 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2014-03-13 03:09:58 +0900 |
| commit | 5b3c76ee481e44ac7e948cafb9aef30a7531270f (patch) | |
| tree | 45b3e48a2dd77ab2836cabce0ede353fca98d3bc /include | |
| parent | ad04b45e5b2a762169beb03dac3b2fe20914476f (diff) | |
| parent | 1b6a4fb5a2e21b6075bc8ecfd874c6c8fcbeefa2 (diff) | |
| download | mruby-5b3c76ee481e44ac7e948cafb9aef30a7531270f.tar.gz mruby-5b3c76ee481e44ac7e948cafb9aef30a7531270f.zip | |
Merge pull request #1849 from cremno/add-mrb_int_bit-macro
add MRB_INT_BIT
Diffstat (limited to 'include')
| -rw-r--r-- | include/mruby/value.h | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/include/mruby/value.h b/include/mruby/value.h index a940aabb7..ccc30357b 100644 --- a/include/mruby/value.h +++ b/include/mruby/value.h @@ -26,6 +26,7 @@ # error Cannot use NaN boxing when mrb_int is 64bit # else typedef int64_t mrb_int; +# define MRB_INT_BIT 64 # define MRB_INT_MIN INT64_MIN # define MRB_INT_MAX INT64_MAX # define PRIdMRB_INT PRId64 @@ -36,10 +37,12 @@ # endif #elif defined(MRB_INT16) typedef int16_t mrb_int; +# define MRB_INT_BIT 16 # define MRB_INT_MIN INT16_MIN # define MRB_INT_MAX INT16_MAX #else typedef int32_t mrb_int; +# define MRB_INT_BIT 32 # define MRB_INT_MIN INT32_MIN # define MRB_INT_MAX INT32_MAX # define PRIdMRB_INT PRId32 @@ -239,7 +242,7 @@ typedef union mrb_value { void *p; struct { unsigned int i_flag : MRB_FIXNUM_SHIFT; - mrb_int i : (sizeof(mrb_int) * CHAR_BIT - MRB_FIXNUM_SHIFT); + mrb_int i : (MRB_INT_BIT - MRB_FIXNUM_SHIFT); }; struct { unsigned int sym_flag : MRB_SPECIAL_SHIFT; |
