diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2020-11-17 12:38:10 +0900 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2020-11-17 12:41:10 +0900 |
| commit | 9fbf0ef886b5601c0c6cc8a24145a805283c9982 (patch) | |
| tree | 71f83410e123b9339d14696087d00835ecca35af /include | |
| parent | aae8237335accdede59a2ca7a2775ea11156884b (diff) | |
| download | mruby-9fbf0ef886b5601c0c6cc8a24145a805283c9982.tar.gz mruby-9fbf0ef886b5601c0c6cc8a24145a805283c9982.zip | |
Refactoring integer ranges.
- Remove `mrb_ssize`
- Fix `MRB_FIXNUM_{MIN,MAX}` to 32 bits on `MRB_NAN_BOXING`
Diffstat (limited to 'include')
| -rw-r--r-- | include/mruby/array.h | 6 | ||||
| -rw-r--r-- | include/mruby/boxing_nan.h | 2 | ||||
| -rw-r--r-- | include/mruby/boxing_no.h | 2 | ||||
| -rw-r--r-- | include/mruby/boxing_word.h | 8 | ||||
| -rw-r--r-- | include/mruby/string.h | 6 | ||||
| -rw-r--r-- | include/mruby/value.h | 17 |
6 files changed, 18 insertions, 23 deletions
diff --git a/include/mruby/array.h b/include/mruby/array.h index 5164efa69..61e3ab8d5 100644 --- a/include/mruby/array.h +++ b/include/mruby/array.h @@ -17,7 +17,7 @@ MRB_BEGIN_DECL typedef struct mrb_shared_array { int refcnt; - mrb_ssize len; + mrb_int len; mrb_value *ptr; } mrb_shared_array; @@ -33,9 +33,9 @@ struct RArray { MRB_OBJECT_HEADER; union { struct { - mrb_ssize len; + mrb_int len; union { - mrb_ssize capa; + mrb_int capa; mrb_shared_array *shared; } aux; mrb_value *ptr; diff --git a/include/mruby/boxing_nan.h b/include/mruby/boxing_nan.h index 96ca46ef3..5f99ced6d 100644 --- a/include/mruby/boxing_nan.h +++ b/include/mruby/boxing_nan.h @@ -21,6 +21,8 @@ #define MRB_FIXNUM_SHIFT 0 #define MRB_SYMBOL_SHIFT 0 +#define MRB_FIXNUM_MIN INT32_MIN +#define MRB_FIXNUM_MAX INT32_MAX /* value representation by nan-boxing: * float : FFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFF diff --git a/include/mruby/boxing_no.h b/include/mruby/boxing_no.h index 0b14590d9..84908a0d8 100644 --- a/include/mruby/boxing_no.h +++ b/include/mruby/boxing_no.h @@ -9,6 +9,8 @@ #define MRB_FIXNUM_SHIFT 0 #define MRB_SYMBOL_SHIFT 0 +#define MRB_FIXNUM_MIN MRB_INT_MIN +#define MRB_FIXNUM_MAX MRB_INT_MAX union mrb_value_union { #ifndef MRB_NO_FLOAT diff --git a/include/mruby/boxing_word.h b/include/mruby/boxing_word.h index afc75c0d9..9e01de4ed 100644 --- a/include/mruby/boxing_word.h +++ b/include/mruby/boxing_word.h @@ -33,6 +33,14 @@ enum mrb_special_consts { #endif #define MRB_SYMBOL_SHIFT BOXWORD_SYMBOL_SHIFT +#if defined(MRB_64BIT) && defined(MRB_INT64) +# define MRB_FIXNUM_MIN (INT64_MIN>>MRB_FIXNUM_SHIFT) +# define MRB_FIXNUM_MAX (INT64_MAX>>MRB_FIXNUM_SHIFT) +#else +# define MRB_FIXNUM_MIN (INT32_MIN>>MRB_FIXNUM_SHIFT) +# define MRB_FIXNUM_MAX (INT32_MAX>>MRB_FIXNUM_SHIFT) +#endif + #define BOXWORD_FIXNUM_BIT_POS 1 #define BOXWORD_SYMBOL_BIT_POS 2 #define BOXWORD_FIXNUM_SHIFT BOXWORD_FIXNUM_BIT_POS diff --git a/include/mruby/string.h b/include/mruby/string.h index 8384128c7..a847a1804 100644 --- a/include/mruby/string.h +++ b/include/mruby/string.h @@ -23,9 +23,9 @@ struct RString { MRB_OBJECT_HEADER; union { struct { - mrb_ssize len; + mrb_int len; union { - mrb_ssize capa; + mrb_int capa; struct mrb_shared_string *shared; struct RString *fshared; } aux; @@ -54,7 +54,7 @@ struct RStringEmbed { RSTR_SET_EMBED_LEN((s),(n));\ }\ else {\ - (s)->as.heap.len = (mrb_ssize)(n);\ + (s)->as.heap.len = (mrb_int)(n);\ }\ } while (0) #define RSTR_EMBED_PTR(s) (((struct RStringEmbed*)(s))->ary) diff --git a/include/mruby/value.h b/include/mruby/value.h index bafe67ce0..a0d299422 100644 --- a/include/mruby/value.h +++ b/include/mruby/value.h @@ -69,14 +69,6 @@ struct mrb_state; # define MRB_PRIx PRIx32 #endif -#if defined(MRB_64BIT) && defined(MRB_INT64) -# define MRB_FIXNUM_MIN (INT64_MIN>>MRB_FIXNUM_SHIFT) -# define MRB_FIXNUM_MAX (INT64_MAX>>MRB_FIXNUM_SHIFT) -#else -# define MRB_FIXNUM_MIN (INT32_MIN>>MRB_FIXNUM_SHIFT) -# define MRB_FIXNUM_MAX (INT32_MAX>>MRB_FIXNUM_SHIFT) -#endif - #ifdef MRB_ENDIAN_BIG # define MRB_ENDIAN_LOHI(a,b) a b #else @@ -175,15 +167,6 @@ struct RCptr { #endif #define MRB_SYMBOL_BIT (sizeof(mrb_sym) * CHAR_BIT - MRB_SYMBOL_SHIFT) -#define MRB_SYMBOL_MAX (UINT32_MAX >> MRB_SYMBOL_SHIFT) - -#if INTPTR_MAX < MRB_INT_MAX - typedef intptr_t mrb_ssize; -# define MRB_SSIZE_MAX (INTPTR_MAX>>MRB_FIXNUM_SHIFT) -#else - typedef mrb_int mrb_ssize; -# define MRB_SSIZE_MAX MRB_INT_MAX -#endif #ifndef mrb_immediate_p #define mrb_immediate_p(o) (mrb_type(o) < MRB_TT_FREE) |
