Merge pull request #6191 from leviongit/sym-eql

Speed up symbol equality comparison
This commit is contained in:
Yukihiro "Matz" Matsumoto
2024-04-04 07:35:54 +09:00
committed by GitHub
2 changed files with 4 additions and 0 deletions
+1
View File
@@ -691,4 +691,5 @@ mrb_init_symbol(mrb_state *mrb)
mrb_define_method_id(mrb, sym, MRB_SYM(to_sym), mrb_obj_itself, MRB_ARGS_NONE()); /* 15.2.11.3.4 */
mrb_define_method_id(mrb, sym, MRB_SYM(inspect), sym_inspect, MRB_ARGS_NONE()); /* 15.2.11.3.5(x) */
mrb_define_method_id(mrb, sym, MRB_OPSYM(cmp), sym_cmp, MRB_ARGS_REQ(1));
mrb_define_method_id(mrb, sym, MRB_OPSYM(eq), mrb_obj_equal_m, MRB_ARGS_REQ(1));
}
+3
View File
@@ -2660,6 +2660,9 @@ RETRY_TRY_BLOCK:
if (mrb_obj_eq(mrb, regs[a], regs[a+1])) {
SET_TRUE_VALUE(regs[a]);
}
else if (mrb_symbol_p(regs[a])) {
SET_FALSE_VALUE(regs[a]);
}
else {
OP_CMP(==,eq);
}