summaryrefslogtreecommitdiffhomepage
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/mruby/array.h6
-rw-r--r--include/mruby/boxing_word.h12
-rw-r--r--include/mruby/dump.h5
-rw-r--r--include/mruby/hash.h2
-rw-r--r--include/mruby/irep.h2
-rw-r--r--include/mruby/value.h8
6 files changed, 18 insertions, 17 deletions
diff --git a/include/mruby/array.h b/include/mruby/array.h
index da811606a..16f78f773 100644
--- a/include/mruby/array.h
+++ b/include/mruby/array.h
@@ -21,7 +21,7 @@ typedef struct mrb_shared_array {
mrb_value *ptr;
} mrb_shared_array;
-#if defined(MRB_32BIT) && defined(MRB_NO_BOXING)
+#if defined(MRB_32BIT) && defined(MRB_NO_BOXING) && !defined(MRB_USE_FLOAT32)
# define MRB_ARY_NO_EMBED
# define MRB_ARY_EMBED_LEN_MAX 0
#else
@@ -65,7 +65,7 @@ struct RArray {
#define ARY_EMBED_PTR(a) ((a)->as.ary)
#endif
-#define ARY_LEN(a) (ARY_EMBED_P(a)?ARY_EMBED_LEN(a):(a)->as.heap.len)
+#define ARY_LEN(a) (ARY_EMBED_P(a)?ARY_EMBED_LEN(a):(mrb_int)(a)->as.heap.len)
#define ARY_PTR(a) (ARY_EMBED_P(a)?ARY_EMBED_PTR(a):(a)->as.heap.ptr)
#define RARRAY_LEN(a) ARY_LEN(RARRAY(a))
#define RARRAY_PTR(a) ARY_PTR(RARRAY(a))
@@ -107,7 +107,7 @@ MRB_API mrb_value mrb_ary_new(mrb_state *mrb);
* Array[value1, value2, ...]
*
* @param mrb The mruby state reference.
- * @param size The numer of values.
+ * @param size The number of values.
* @param vals The actual values.
* @return The initialized array.
*/
diff --git a/include/mruby/boxing_word.h b/include/mruby/boxing_word.h
index 86a04368f..beab8681e 100644
--- a/include/mruby/boxing_word.h
+++ b/include/mruby/boxing_word.h
@@ -84,9 +84,9 @@ union mrb_value_ {
struct {
MRB_ENDIAN_LOHI(
mrb_sym sym;
- ,uint32_t sym_flag;
+ ,uint32_t flag;
)
- };
+ } sym;
#endif
struct RBasic *bp;
#ifndef MRB_NO_FLOAT
@@ -129,7 +129,7 @@ mrb_integer_func(mrb_value o) {
}
#define mrb_integer(o) mrb_integer_func(o)
#ifdef MRB_64BIT
-#define mrb_symbol(o) mrb_val_union(o).sym
+#define mrb_symbol(o) mrb_val_union(o).sym.sym
#else
#define mrb_symbol(o) (mrb_sym)(((o).w) >> BOXWORD_SYMBOL_SHIFT)
#endif
@@ -138,7 +138,7 @@ mrb_integer_func(mrb_value o) {
#define mrb_fixnum_p(o) BOXWORD_SHIFT_VALUE_P(o, FIXNUM)
#define mrb_integer_p(o) (BOXWORD_SHIFT_VALUE_P(o, FIXNUM)||BOXWORD_OBJ_TYPE_P(o, INTEGER))
#ifdef MRB_64BIT
-#define mrb_symbol_p(o) (mrb_val_union(o).sym_flag == BOXWORD_SYMBOL_FLAG)
+#define mrb_symbol_p(o) (mrb_val_union(o).sym.flag == BOXWORD_SYMBOL_FLAG)
#else
#define mrb_symbol_p(o) BOXWORD_SHIFT_VALUE_P(o, SYMBOL)
#endif
@@ -182,8 +182,8 @@ mrb_integer_func(mrb_value o) {
#ifdef MRB_64BIT
#define SET_SYM_VALUE(r,v) do {\
union mrb_value_ mrb_value_union_variable;\
- mrb_value_union_variable.sym = v;\
- mrb_value_union_variable.sym_flag = BOXWORD_SYMBOL_FLAG;\
+ mrb_value_union_variable.sym.sym = v;\
+ mrb_value_union_variable.sym.flag = BOXWORD_SYMBOL_FLAG;\
(r) = mrb_value_union_variable.value;\
} while (0)
#else
diff --git a/include/mruby/dump.h b/include/mruby/dump.h
index ed0c64b1a..3c48866d9 100644
--- a/include/mruby/dump.h
+++ b/include/mruby/dump.h
@@ -16,7 +16,10 @@
*/
MRB_BEGIN_DECL
-#define DUMP_DEBUG_INFO 1
+/* flags for mrb_dump_irep{,_binary,_cfunc,_cstruct} */
+#define MRB_DUMP_DEBUG_INFO 1
+#define MRB_DUMP_STATIC 2
+#define DUMP_DEBUG_INFO MRB_DUMP_DEBUG_INFO /* deprecated */
int mrb_dump_irep(mrb_state *mrb, const mrb_irep *irep, uint8_t flags, uint8_t **bin, size_t *bin_size);
#ifndef MRB_NO_STDIO
diff --git a/include/mruby/hash.h b/include/mruby/hash.h
index a16df2f75..749ea3869 100644
--- a/include/mruby/hash.h
+++ b/include/mruby/hash.h
@@ -29,7 +29,7 @@ struct RHash {
union {
struct hash_entry *ea;
struct hash_table *ht;
- };
+ } hsh;
};
#define mrb_hash_ptr(v) ((struct RHash*)(mrb_ptr(v)))
diff --git a/include/mruby/irep.h b/include/mruby/irep.h
index 8d1648e13..640b0177f 100644
--- a/include/mruby/irep.h
+++ b/include/mruby/irep.h
@@ -31,9 +31,7 @@ typedef struct mrb_pool_value {
union {
const char *str;
int32_t i32;
-#if defined(MRB_64BIT) || defined(MRB_INT64)
int64_t i64;
-#endif
#ifndef MRB_NO_FLOAT
mrb_float f;
#endif
diff --git a/include/mruby/value.h b/include/mruby/value.h
index 293ef90a7..4831b55af 100644
--- a/include/mruby/value.h
+++ b/include/mruby/value.h
@@ -107,12 +107,12 @@ static const unsigned int IEEE754_INFINITY_BITS_SINGLE = 0x7F800000;
enum mrb_vtype {
MRB_TT_FALSE = 0,
MRB_TT_TRUE,
- MRB_TT_FLOAT,
- MRB_TT_INTEGER,
MRB_TT_SYMBOL,
MRB_TT_UNDEF,
- MRB_TT_CPTR,
MRB_TT_FREE,
+ MRB_TT_FLOAT,
+ MRB_TT_INTEGER,
+ MRB_TT_CPTR,
MRB_TT_OBJECT,
MRB_TT_CLASS,
MRB_TT_MODULE,
@@ -177,7 +177,7 @@ struct RCptr {
#endif
#ifndef mrb_immediate_p
-#define mrb_immediate_p(o) (mrb_type(o) < MRB_TT_FREE)
+#define mrb_immediate_p(o) (mrb_type(o) <= MRB_TT_CPTR)
#endif
#ifndef mrb_integer_p
#define mrb_integer_p(o) (mrb_type(o) == MRB_TT_INTEGER)