diff options
| -rw-r--r-- | src/codedump.c | 2 | ||||
| -rw-r--r-- | src/gc.c | 15 | ||||
| -rw-r--r-- | src/vm.c | 4 |
3 files changed, 3 insertions, 18 deletions
diff --git a/src/codedump.c b/src/codedump.c index 5acc274c3..e70df3205 100644 --- a/src/codedump.c +++ b/src/codedump.c @@ -170,7 +170,7 @@ codedump(mrb_state *mrb, const mrb_irep *irep) print_lv_a(mrb, irep, a); break; CASE(OP_LOADI32, BSS); - printf("OP_LOADI32\tR%d\t%d\t", a, (int)(b<<16)+c); + printf("OP_LOADI32\tR%d\t%d\t", a, (int)(((uint32_t)b<<16)+c)); print_lv_a(mrb, irep, a); break; CASE(OP_LOADI__1, B); @@ -780,21 +780,6 @@ obj_free(mrb_state *mrb, struct RBasic *obj, int end) { DEBUG(fprintf(stderr, "obj_free(%p,tt=%d)\n",obj,obj->tt)); switch (obj->tt) { - /* immediate - no mark */ - case MRB_TT_TRUE: - case MRB_TT_SYMBOL: - /* cannot happen */ - return; - -#ifndef MRB_NO_FLOAT - case MRB_TT_FLOAT: -#ifdef MRB_WORD_BOXING - break; -#else - return; -#endif -#endif - case MRB_TT_OBJECT: mrb_gc_free_iv(mrb, (struct RObject*)obj); break; @@ -1069,7 +1069,7 @@ RETRY_TRY_BLOCK: NEXT; } - + CASE(OP_LOADL16, BS) { goto op_loadl; } @@ -1135,7 +1135,7 @@ RETRY_TRY_BLOCK: } CASE(OP_LOADI32, BSS) { - SET_INT_VALUE(mrb, regs[a], ((mrb_int)b<<16)+c); + SET_INT_VALUE(mrb, regs[a], (mrb_int)(((uint32_t)b<<16)+c)); NEXT; } |
