diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/class.c | 1 | ||||
| -rw-r--r-- | src/vm.c | 4 |
2 files changed, 3 insertions, 2 deletions
diff --git a/src/class.c b/src/class.c index dcd0ae492..339920b6e 100644 --- a/src/class.c +++ b/src/class.c @@ -888,6 +888,7 @@ mrb_singleton_class(mrb_state *mrb, mrb_value v) case MRB_TT_TRUE: return mrb_obj_value(mrb->true_class); case MRB_TT_MAIN: + case MRB_TT_VOIDP: return mrb_obj_value(mrb->object_class); case MRB_TT_SYMBOL: case MRB_TT_FIXNUM: @@ -1390,7 +1390,7 @@ mrb_run(mrb_state *mrb, struct RProc *proc, mrb_value self) x = mrb_fixnum(regs[a]); y = mrb_fixnum(regs[a+1]); z = x - y; - if (((x < 0) ^ (y < 0)) == 0 && (x < 0) != (z < 0)) { + if (((x < 0) ^ (y < 0)) != 0 && (x < 0) != (z < 0)) { /* integer overflow */ SET_FLT_VALUE(regs[a], (mrb_float)x - (mrb_float)y); break; @@ -1532,7 +1532,7 @@ mrb_run(mrb_state *mrb, struct RProc *proc, mrb_value self) mrb_int y = GETARG_C(i); mrb_int z = x - y; - if (((x < 0) ^ (y < 0)) == 0 && (x < 0) != (z < 0)) { + if (((x < 0) ^ (y < 0)) != 0 && (x < 0) != (z < 0)) { /* integer overflow */ SET_FLT_VALUE(regs[a], (mrb_float)x - (mrb_float)y); break; |
