From ad0f8ff76cb6c698e75dbde6011a9251d5efd13b Mon Sep 17 00:00:00 2001 From: ko1 Date: Fri, 26 May 2017 05:26:57 +0000 Subject: [PATCH] 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 --- vm_insnhelper.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/vm_insnhelper.c b/vm_insnhelper.c index 4c25ba6e8d..f0832eac74 100644 --- a/vm_insnhelper.c +++ b/vm_insnhelper.c @@ -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);