summaryrefslogtreecommitdiffhomepage
path: root/include
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2020-11-17 12:38:10 +0900
committerYukihiro "Matz" Matsumoto <[email protected]>2020-11-17 12:41:10 +0900
commit9fbf0ef886b5601c0c6cc8a24145a805283c9982 (patch)
tree71f83410e123b9339d14696087d00835ecca35af /include
parentaae8237335accdede59a2ca7a2775ea11156884b (diff)
downloadmruby-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.h6
-rw-r--r--include/mruby/boxing_nan.h2
-rw-r--r--include/mruby/boxing_no.h2
-rw-r--r--include/mruby/boxing_word.h8
-rw-r--r--include/mruby/string.h6
-rw-r--r--include/mruby/value.h17
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)