From d92b0dc58aa161801a5e5d4a484e67a9dd61bb65 Mon Sep 17 00:00:00 2001 From: nobu Date: Wed, 24 Jun 2015 08:29:03 +0000 Subject: vm_method.c: remove redundant check * vm_method.c (rb_attr): remove redundant check. attribute names given in ruby level should be checked before calling this function. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51014 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- object.c | 15 --------------- vm_method.c | 11 ++--------- 2 files changed, 2 insertions(+), 24 deletions(-) diff --git a/object.c b/object.c index a41839bb9f..685757987f 100644 --- a/object.c +++ b/object.c @@ -1923,12 +1923,6 @@ check_setter_id(VALUE name, int (*valid_sym_p)(VALUE), int (*valid_name_p)(VALUE return id; } -static int -rb_is_attr_id(ID id) -{ - return rb_is_local_id(id) || rb_is_const_id(id); -} - static int rb_is_attr_name(VALUE name) { @@ -1949,15 +1943,6 @@ id_for_attr(VALUE name) return id_for_setter(name, attr, invalid_attribute_name); } -ID -rb_check_attr_id(ID id) -{ - if (!rb_is_attr_id(id)) { - rb_name_error_str(id, invalid_attribute_name, QUOTE_ID(id)); - } - return id; -} - /* * call-seq: * attr_reader(symbol, ...) -> nil diff --git a/vm_method.c b/vm_method.c index d559cd8d0d..0cbebea909 100644 --- a/vm_method.c +++ b/vm_method.c @@ -912,8 +912,6 @@ rb_method_boundp(VALUE klass, ID id, int ex) return 0; } -extern ID rb_check_attr_id(ID id); - static int rb_scope_visibility_test(rb_method_visibility_t visi) { @@ -953,8 +951,7 @@ rb_scope_module_func_set(void) void rb_attr(VALUE klass, ID id, int read, int write, int ex) { - VALUE attriv; - VALUE aname; + ID attriv; rb_method_visibility_t visi; if (!ex) { @@ -975,11 +972,7 @@ rb_attr(VALUE klass, ID id, int read, int write, int ex) } } - aname = rb_id2str(rb_check_attr_id(id)); - if (NIL_P(aname)) { - rb_raise(rb_eArgError, "argument needs to be symbol or string"); - } - attriv = (VALUE)rb_intern_str(rb_sprintf("@%"PRIsVALUE, aname)); + attriv = rb_intern_str(rb_sprintf("@%"PRIsVALUE, rb_id2str(id))); if (read) { rb_add_method(klass, id, VM_METHOD_TYPE_IVAR, (void *)attriv, visi); } -- cgit v1.2.3