From 495548ace4587df43d30b021cfa6b2f84c9d9d44 Mon Sep 17 00:00:00 2001 From: ko1 Date: Tue, 11 Nov 2014 01:42:01 +0000 Subject: [PATCH] * string.c (sym_equal): use rb_obj_equal(). rb_obj_equal() is specially optimized in opt_eq_func()@vm_insnhelper.c. This fix is made from this discussion: https://www.omniref.com/ruby/2.1.4/symbols/Symbol/%3D%3D#line=8361. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48369 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 9 +++++++++ string.c | 8 +------- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/ChangeLog b/ChangeLog index 89eda3ebb4..60e01c071b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +Tue Nov 11 10:37:09 2014 Koichi Sasada + + * string.c (sym_equal): use rb_obj_equal(). + rb_obj_equal() is specially optimized in + opt_eq_func()@vm_insnhelper.c. + + This fix is made from this discussion: + https://www.omniref.com/ruby/2.1.4/symbols/Symbol/%3D%3D#line=8361. + Tue Nov 11 09:38:55 2014 SHIBATA Hiroshi * lib/rdoc/known_classes.rb: reverted regression changes of diff --git a/string.c b/string.c index 84481dfe8c..c8ed9fd604 100644 --- a/string.c +++ b/string.c @@ -8484,13 +8484,7 @@ str_scrub_bang(int argc, VALUE *argv, VALUE str) * symbol, returns true. */ -static VALUE -sym_equal(VALUE sym1, VALUE sym2) -{ - if (sym1 == sym2) return Qtrue; - return Qfalse; -} - +#define sym_equal rb_obj_equal static int sym_printable(const char *s, const char *send, rb_encoding *enc)