From ddd9d609dca9844e1d62ef4dd58f5d62c9bebc0b Mon Sep 17 00:00:00 2001 From: matz Date: Tue, 18 Feb 2003 14:30:17 +0000 Subject: * eval.c (rb_call0): should not report uninitialized warning by attribute reader method. * variable.c (rb_attr_get): new function to get instance variable without uninitialized warning. * io.c (argf_to_io): should prefetch argv. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@3504 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- variable.c | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) (limited to 'variable.c') diff --git a/variable.c b/variable.c index 4a7bcd4ee5..9ac004e7f5 100644 --- a/variable.c +++ b/variable.c @@ -965,10 +965,11 @@ rb_copy_generic_ivar(clone, obj) } } -VALUE -rb_ivar_get(obj, id) +static VALUE +ivar_get(obj, id, warn) VALUE obj; ID id; + int warn; { VALUE val; @@ -984,11 +985,29 @@ rb_ivar_get(obj, id) return generic_ivar_get(obj, id); break; } - rb_warning("instance variable %s not initialized", rb_id2name(id)); + if (warn && ruby_verbose) { + rb_warning("instance variable %s not initialized", rb_id2name(id)); + } return Qnil; } +VALUE +rb_ivar_get(obj, id) + VALUE obj; + ID id; +{ + return ivar_get(obj, id, Qtrue); +} + +VALUE +rb_attr_get(obj, id) + VALUE obj; + ID id; +{ + return ivar_get(obj, id, Qfalse); +} + VALUE rb_ivar_set(obj, id, val) VALUE obj; -- cgit v1.2.3