Symbol support for opt_eq_func.

* vm_insnhelper.c (opt_eq_func): optimize for symbol comparison.
  [Bug #13330] [fix GH-1540]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58895 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
ko1 2017-05-26 05:26:57 +00:00
Родитель 8dce62218a
Коммит ad0f8ff76c
1 изменённых файлов: 5 добавлений и 0 удалений

Просмотреть файл

@ -1325,6 +1325,11 @@ opt_eq_func(VALUE recv, VALUE obj, CALL_INFO ci, CALL_CACHE cc)
return rb_str_equal(recv, obj);
}
}
else if (SYMBOL_P(recv) && SYMBOL_P(obj)) {
if (EQ_UNREDEFINED_P(SYMBOL)) {
return (recv == obj) ? Qtrue : Qfalse;
}
}
{
vm_search_method(ci, cc, recv);