summaryrefslogtreecommitdiffhomepage
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/mrbconf.h9
-rw-r--r--include/mruby.h16
-rw-r--r--include/mruby/array.h3
-rw-r--r--include/mruby/class.h2
-rw-r--r--include/mruby/compile.h14
-rw-r--r--include/mruby/string.h4
-rw-r--r--include/mruby/value.h7
7 files changed, 31 insertions, 24 deletions
diff --git a/include/mrbconf.h b/include/mrbconf.h
index cabc10b4f..b485642dc 100644
--- a/include/mrbconf.h
+++ b/include/mrbconf.h
@@ -68,7 +68,7 @@
# define str_to_mrb_float(buf) strtod(buf, NULL)
#endif
-#ifdef MRB_INT64
+#if defined(MRB_INT64)
# ifdef MRB_NAN_BOXING
# error Cannot use NaN boxing when mrb_int is 64bit
# else
@@ -77,6 +77,11 @@
# define MRB_INT_MAX INT64_MAX
# define str_to_mrb_int(buf) strtoll(buf, NULL, 10)
# endif
+#elif defined(MRB_INT16)
+ typedef int16_t mrb_int;
+# define MRB_INT_MIN INT16_MIN
+# define MRB_INT_MAX INT16_MAX
+# define str_to_mrb_int(buf) strtol(buf, NULL, 10)
#else
typedef int32_t mrb_int;
# define MRB_INT_MIN INT32_MIN
@@ -110,8 +115,10 @@ typedef short mrb_sym;
# define strtoll _strtoi64
# define PRId32 "I32d"
# define PRId64 "I64d"
+typedef unsigned int mrb_bool;
#else
# include <inttypes.h>
+typedef _Bool mrb_bool;
#endif
#ifdef ENABLE_STDIO
diff --git a/include/mruby.h b/include/mruby.h
index e058d409f..2d2bc64cc 100644
--- a/include/mruby.h
+++ b/include/mruby.h
@@ -121,9 +121,9 @@ typedef struct mrb_state {
size_t gc_threshold;
int gc_interval_ratio;
int gc_step_ratio;
- unsigned int gc_disabled:1;
- unsigned int gc_full:1;
- unsigned int is_generational_gc_mode:1;
+ mrb_bool gc_disabled:1;
+ mrb_bool gc_full:1;
+ mrb_bool is_generational_gc_mode:1;
size_t majorgc_old_threshold;
struct alloca_header *mems;
@@ -190,10 +190,10 @@ mrb_value mrb_funcall(mrb_state*, mrb_value, const char*, int,...);
mrb_value mrb_funcall_argv(mrb_state*, mrb_value, mrb_sym, int, mrb_value*);
mrb_value mrb_funcall_with_block(mrb_state*, mrb_value, mrb_sym, int, mrb_value*, mrb_value);
mrb_sym mrb_intern(mrb_state*,const char*);
-mrb_sym mrb_intern2(mrb_state*,const char*,int);
+mrb_sym mrb_intern2(mrb_state*,const char*,size_t);
mrb_sym mrb_intern_str(mrb_state*,mrb_value);
const char *mrb_sym2name(mrb_state*,mrb_sym);
-const char *mrb_sym2name_len(mrb_state*,mrb_sym,int*);
+const char *mrb_sym2name_len(mrb_state*,mrb_sym,size_t*);
mrb_value mrb_str_format(mrb_state *, int, const mrb_value *, mrb_value);
void *mrb_malloc(mrb_state*, size_t);
@@ -202,7 +202,7 @@ void *mrb_realloc(mrb_state*, void*, size_t);
struct RBasic *mrb_obj_alloc(mrb_state*, enum mrb_vtype, struct RClass*);
void *mrb_free(mrb_state*, void*);
-mrb_value mrb_str_new(mrb_state *mrb, const char *p, int len); /* mrb_str_new */
+mrb_value mrb_str_new(mrb_state *mrb, const char *p, size_t len);
mrb_value mrb_str_new_cstr(mrb_state*, const char*);
mrb_state* mrb_open(void);
@@ -232,11 +232,11 @@ int mrb_gc_arena_save(mrb_state*);
void mrb_gc_arena_restore(mrb_state*,int);
void mrb_gc_mark(mrb_state*,struct RBasic*);
#define mrb_gc_mark_value(mrb,val) do {\
- if (mrb_type(val) >= MRB_TT_OBJECT) mrb_gc_mark((mrb), mrb_object(val));\
+ if (mrb_type(val) >= MRB_TT_OBJECT) mrb_gc_mark((mrb), mrb_basic_ptr(val));\
} while (0)
void mrb_field_write_barrier(mrb_state *, struct RBasic*, struct RBasic*);
#define mrb_field_write_barrier_value(mrb, obj, val) do{\
- if ((val.tt >= MRB_TT_OBJECT)) mrb_field_write_barrier((mrb), (obj), mrb_object(val));\
+ if ((val.tt >= MRB_TT_OBJECT)) mrb_field_write_barrier((mrb), (obj), mrb_basic_ptr(val));\
} while (0)
void mrb_write_barrier(mrb_state *, struct RBasic*);
diff --git a/include/mruby/array.h b/include/mruby/array.h
index 7fba4a99c..0419ddb27 100644
--- a/include/mruby/array.h
+++ b/include/mruby/array.h
@@ -39,9 +39,6 @@ void mrb_ary_decref(mrb_state*, mrb_shared_array*);
mrb_value mrb_ary_new_capa(mrb_state*, mrb_int);
mrb_value mrb_ary_new(mrb_state *mrb);
mrb_value mrb_ary_new_from_values(mrb_state *mrb, mrb_int size, const mrb_value *vals);
-/* compatibility macros - soon to be removed */
-#define mrb_ary_new_elts(mrb,size,vals) mrb_ary_new_from_values(mrb,size,vals)
-#define mrb_ary_new4(mrb,size,vals) mrb_ary_new_from_values(mrb,size,vals)
void mrb_ary_concat(mrb_state*, mrb_value, mrb_value);
mrb_value mrb_ary_splat(mrb_state*, mrb_value);
void mrb_ary_push(mrb_state*, mrb_value, mrb_value);
diff --git a/include/mruby/class.h b/include/mruby/class.h
index e2f1bae46..c303db9ae 100644
--- a/include/mruby/class.h
+++ b/include/mruby/class.h
@@ -42,7 +42,7 @@ mrb_class(mrb_state *mrb, mrb_value v)
case MRB_TT_MAIN:
return mrb->object_class;
default:
- return mrb_object(v)->c;
+ return mrb_obj_ptr(v)->c;
}
}
diff --git a/include/mruby/compile.h b/include/mruby/compile.h
index 2cbc28321..a50c85e42 100644
--- a/include/mruby/compile.h
+++ b/include/mruby/compile.h
@@ -21,9 +21,9 @@ typedef struct mrbc_context {
int slen;
char *filename;
short lineno;
- int capture_errors:1;
- int dump_result:1;
- int no_exec:1;
+ mrb_bool capture_errors:1;
+ mrb_bool dump_result:1;
+ mrb_bool no_exec:1;
} mrbc_context;
mrbc_context* mrbc_context_new(mrb_state *mrb);
@@ -67,8 +67,8 @@ enum heredoc_type {
/* heredoc structure */
struct mrb_parser_heredoc_info {
enum heredoc_type type;
- int allow_indent:1;
- int line_head:1;
+ mrb_bool allow_indent:1;
+ mrb_bool line_head:1;
const char *term;
int term_len;
mrb_ast_node *doc;
@@ -102,8 +102,8 @@ struct mrb_parser_state {
mrb_ast_node *heredocs; /* list of mrb_parser_heredoc_info* */
mrb_ast_node *parsing_heredoc;
- int heredoc_starts_nextline:1;
- int heredoc_end_now:1; /* for mirb */
+ mrb_bool heredoc_starts_nextline:1;
+ mrb_bool heredoc_end_now:1; /* for mirb */
void *ylval;
diff --git a/include/mruby/string.h b/include/mruby/string.h
index 2fc748474..613c6c6a7 100644
--- a/include/mruby/string.h
+++ b/include/mruby/string.h
@@ -46,10 +46,10 @@ mrb_value mrb_str_plus(mrb_state*, mrb_value, mrb_value);
mrb_value mrb_obj_as_string(mrb_state *mrb, mrb_value obj);
mrb_value mrb_str_resize(mrb_state *mrb, mrb_value str, int len); /* mrb_str_resize */
mrb_value mrb_string_value(mrb_state *mrb, mrb_value *ptr); /* StringValue */
-mrb_value mrb_str_substr(mrb_state *mrb, mrb_value str, mrb_int beg, int len);
+mrb_value mrb_str_substr(mrb_state *mrb, mrb_value str, mrb_int beg, mrb_int len);
mrb_value mrb_check_string_type(mrb_state *mrb, mrb_value str);
mrb_value mrb_str_buf_new(mrb_state *mrb, int capa);
-mrb_value mrb_str_buf_cat(mrb_state *mrb, mrb_value str, const char *ptr, int len);
+mrb_value mrb_str_buf_cat(mrb_state *mrb, mrb_value str, const char *ptr, size_t len);
char *mrb_string_value_cstr(mrb_state *mrb, mrb_value *ptr);
char *mrb_string_value_ptr(mrb_state *mrb, mrb_value ptr);
diff --git a/include/mruby/value.h b/include/mruby/value.h
index 1dfa7b975..7f31b0982 100644
--- a/include/mruby/value.h
+++ b/include/mruby/value.h
@@ -144,7 +144,6 @@ mrb_float_value(mrb_float f)
#define mrb_fixnum(o) (o).value.i
#define mrb_symbol(o) (o).value.sym
-#define mrb_object(o) ((struct RBasic *) (o).value.p)
#define mrb_voidp(o) (o).value.p
#define mrb_fixnum_p(o) (mrb_type(o) == MRB_TT_FIXNUM)
#define mrb_float_p(o) (mrb_type(o) == MRB_TT_FLOAT)
@@ -187,7 +186,9 @@ struct RBasic {
MRB_OBJECT_HEADER;
};
-#define mrb_basic(v) ((struct RBasic*)((v).value.p))
+#define mrb_basic_ptr(v) ((struct RBasic*)((v).value.p))
+/* obsolete macro mrb_basic; will be removed soon */
+#define mrb_basic(v) mrb_basic_ptr(v)
struct RObject {
MRB_OBJECT_HEADER;
@@ -195,6 +196,8 @@ struct RObject {
};
#define mrb_obj_ptr(v) ((struct RObject*)((v).value.p))
+/* obsolete macro mrb_object; will be removed soon */
+#define mrb_object(o) mrb_obj_ptr(o)
#define mrb_immediate_p(x) (mrb_type(x) <= MRB_TT_MAIN)
#define mrb_special_const_p(x) mrb_immediate_p(x)