From caada48ee823871ee85a5b1096a9f7ca6815eef5 Mon Sep 17 00:00:00 2001 From: nobu Date: Tue, 27 Oct 2015 07:41:07 +0000 Subject: error.c: suppress warnings * error.c (rb_error_frozen_object): use rb_attr_get instead of rb_ivar_get to get rid of warnings for string objects created when frozen-string-literal-debug is disabled. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52299 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- error.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'error.c') diff --git a/error.c b/error.c index d6fe701fa1..4774ef6a94 100644 --- a/error.c +++ b/error.c @@ -2227,8 +2227,12 @@ void rb_error_frozen_object(VALUE frozen_obj) { VALUE path, line; - if ((path = rb_iv_get(frozen_obj, "__object_created_path__")) != Qnil && - (line = rb_iv_get(frozen_obj, "__object_created_line__")) != Qnil) { + ID created_path, created_line; + + CONST_ID(created_path, "__object_created_path__"); + CONST_ID(created_line, "__object_created_line__"); + if (!NIL_P(path = rb_attr_get(frozen_obj, created_path)) && + !NIL_P(line = rb_attr_get(frozen_obj, created_line))) { rb_raise(rb_eRuntimeError, "can't modify frozen %"PRIsVALUE", created at %"PRIsVALUE":%"PRIsVALUE, CLASS_OF(frozen_obj), path, line); } -- cgit v1.2.3