mirror of
https://github.com/mruby/mruby
synced 2026-06-08 16:11:16 +00:00
vm.c (OP_CMP): fixed wrong numeric comparison for integers; fix #5975
MRB_TT_INTEGER value may not be fixnum (immediate integer), so we should not use mrb_fixnum() here.
This commit is contained in:
@@ -2643,13 +2643,13 @@ RETRY_TRY_BLOCK:
|
||||
/* need to check if - is overridden */\
|
||||
switch (TYPES2(mrb_type(regs[a]),mrb_type(regs[a+1]))) {\
|
||||
case TYPES2(MRB_TT_INTEGER,MRB_TT_INTEGER):\
|
||||
result = OP_CMP_BODY(op,mrb_fixnum,mrb_fixnum);\
|
||||
result = OP_CMP_BODY(op,mrb_integer,mrb_integer);\
|
||||
break;\
|
||||
case TYPES2(MRB_TT_INTEGER,MRB_TT_FLOAT):\
|
||||
result = OP_CMP_BODY(op,mrb_fixnum,mrb_float);\
|
||||
result = OP_CMP_BODY(op,mrb_integer,mrb_float);\
|
||||
break;\
|
||||
case TYPES2(MRB_TT_FLOAT,MRB_TT_INTEGER):\
|
||||
result = OP_CMP_BODY(op,mrb_float,mrb_fixnum);\
|
||||
result = OP_CMP_BODY(op,mrb_float,mrb_integer);\
|
||||
break;\
|
||||
case TYPES2(MRB_TT_FLOAT,MRB_TT_FLOAT):\
|
||||
result = OP_CMP_BODY(op,mrb_float,mrb_float);\
|
||||
|
||||
Reference in New Issue
Block a user