From 0c11a1ca2f1b1c98cb0f71d51b1205deb8b08c20 Mon Sep 17 00:00:00 2001 From: Masaki Muranaka Date: Fri, 15 Mar 2013 17:43:02 +0900 Subject: [PATCH] Fix some confusions between mrb_object() and mrb_basic(). --- include/mruby.h | 4 ++-- include/mruby/value.h | 2 +- src/class.c | 2 +- src/error.c | 2 +- src/load.c | 2 +- src/parse.y | 6 +++--- src/vm.c | 12 ++++++------ 7 files changed, 15 insertions(+), 15 deletions(-) diff --git a/include/mruby.h b/include/mruby.h index e058d409f..a1142456e 100644 --- a/include/mruby.h +++ b/include/mruby.h @@ -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(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(val));\ } while (0) void mrb_write_barrier(mrb_state *, struct RBasic*); diff --git a/include/mruby/value.h b/include/mruby/value.h index 1dfa7b975..7a2b00ae5 100644 --- a/include/mruby/value.h +++ b/include/mruby/value.h @@ -144,7 +144,7 @@ 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_object(o) ((struct RObject *) (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) diff --git a/src/class.c b/src/class.c index a00000375..4a8cfca93 100644 --- a/src/class.c +++ b/src/class.c @@ -920,7 +920,7 @@ mrb_singleton_class(mrb_state *mrb, mrb_value v) default: break; } - obj = mrb_object(v); + obj = mrb_basic(v); prepare_singleton_class(mrb, obj); return mrb_obj_value(obj->c); } diff --git a/src/error.c b/src/error.c index 6bd891768..e837b7480 100644 --- a/src/error.c +++ b/src/error.c @@ -206,7 +206,7 @@ exc_debug_info(mrb_state *mrb, struct RObject *exc) void mrb_exc_raise(mrb_state *mrb, mrb_value exc) { - mrb->exc = (struct RObject*)mrb_object(exc); + mrb->exc = mrb_object(exc); exc_debug_info(mrb, mrb->exc); if (!mrb->jmp) { mrb_p(mrb, exc); diff --git a/src/load.c b/src/load.c index 84c21c186..bc606527c 100644 --- a/src/load.c +++ b/src/load.c @@ -683,7 +683,7 @@ static void irep_error(mrb_state *mrb, int n) { static const char msg[] = "irep load error"; - mrb->exc = (struct RObject*)mrb_object(mrb_exc_new(mrb, E_SCRIPT_ERROR, msg, sizeof(msg) - 1)); + mrb->exc = mrb_object(mrb_exc_new(mrb, E_SCRIPT_ERROR, msg, sizeof(msg) - 1)); } #ifdef ENABLE_STDIO diff --git a/src/parse.y b/src/parse.y index 5c49db07e..50ea83c11 100644 --- a/src/parse.y +++ b/src/parse.y @@ -5153,13 +5153,13 @@ load_exec(mrb_state *mrb, parser_state *p, mrbc_context *c) n = snprintf(buf, sizeof(buf), "line %d: %s\n", p->error_buffer[0].lineno, p->error_buffer[0].message); - mrb->exc = (struct RObject*)mrb_object(mrb_exc_new(mrb, E_SYNTAX_ERROR, buf, n)); + mrb->exc = mrb_object(mrb_exc_new(mrb, E_SYNTAX_ERROR, buf, n)); mrb_parser_free(p); return mrb_undef_value(); } else { static const char msg[] = "syntax error"; - mrb->exc = (struct RObject*)mrb_object(mrb_exc_new(mrb, E_SYNTAX_ERROR, msg, sizeof(msg) - 1)); + mrb->exc = mrb_object(mrb_exc_new(mrb, E_SYNTAX_ERROR, msg, sizeof(msg) - 1)); mrb_parser_free(p); return mrb_undef_value(); } @@ -5168,7 +5168,7 @@ load_exec(mrb_state *mrb, parser_state *p, mrbc_context *c) mrb_parser_free(p); if (n < 0) { static const char msg[] = "codegen error"; - mrb->exc = (struct RObject*)mrb_object(mrb_exc_new(mrb, E_SCRIPT_ERROR, msg, sizeof(msg) - 1)); + mrb->exc = mrb_object(mrb_exc_new(mrb, E_SCRIPT_ERROR, msg, sizeof(msg) - 1)); return mrb_nil_value(); } if (c) { diff --git a/src/vm.c b/src/vm.c index 65e2f9c65..c8169dcfc 100644 --- a/src/vm.c +++ b/src/vm.c @@ -478,7 +478,7 @@ localjump_error(mrb_state *mrb, localjump_error_kind kind) mrb_str_buf_cat(mrb, msg, lead, sizeof(lead) - 1); mrb_str_buf_cat(mrb, msg, kind_str[kind], kind_str_len[kind]); exc = mrb_exc_new3(mrb, E_LOCALJUMP_ERROR, msg); - mrb->exc = (struct RObject*)mrb_object(exc); + mrb->exc = mrb_object(exc); } static void @@ -498,7 +498,7 @@ argnum_error(mrb_state *mrb, int num) mrb->ci->argc, num); } exc = mrb_exc_new(mrb, E_ARGUMENT_ERROR, buf, len); - mrb->exc = (struct RObject*)mrb_object(exc); + mrb->exc = mrb_object(exc); } #ifdef ENABLE_DEBUG @@ -780,7 +780,7 @@ mrb_run(mrb_state *mrb, struct RProc *proc, mrb_value self) CASE(OP_RAISE) { /* A raise(R(A)) */ - mrb->exc = (struct RObject*)mrb_object(regs[GETARG_A(i)]); + mrb->exc = mrb_object(regs[GETARG_A(i)]); goto L_RAISE; } @@ -1062,7 +1062,7 @@ mrb_run(mrb_state *mrb, struct RProc *proc, mrb_value self) mrb_value exc; static const char m[] = "super called outside of method"; exc = mrb_exc_new(mrb, E_NOMETHOD_ERROR, m, sizeof(m) - 1); - mrb->exc = (struct RObject*)mrb_object(exc); + mrb->exc = mrb_object(exc); goto L_RAISE; } stack = e->stack + 1; @@ -1911,7 +1911,7 @@ mrb_run(mrb_state *mrb, struct RProc *proc, mrb_value self) if (!mrb->ci->target_class) { static const char msg[] = "no target class or module"; mrb_value exc = mrb_exc_new(mrb, E_TYPE_ERROR, msg, sizeof(msg) - 1); - mrb->exc = (struct RObject*)mrb_object(exc); + mrb->exc = mrb_object(exc); goto L_RAISE; } regs[GETARG_A(i)] = mrb_obj_value(mrb->ci->target_class); @@ -1964,7 +1964,7 @@ mrb_run(mrb_state *mrb, struct RProc *proc, mrb_value self) else { exc = mrb_exc_new3(mrb, E_LOCALJUMP_ERROR, msg); } - mrb->exc = (struct RObject*)mrb_object(exc); + mrb->exc = mrb_object(exc); goto L_RAISE; } }