diff options
author | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2003-02-18 14:30:17 +0000 |
---|---|---|
committer | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2003-02-18 14:30:17 +0000 |
commit | b654e1dd8bca6b5831f8d58902a7c573ebb1cb03 (patch) | |
tree | 1cdebfa2fe2170d793fd70ece0e7dd9d97d1ede5 /variable.c | |
parent | 7c18d988fce265673cbb84c6c4523f4d4aba856e (diff) | |
download | ruby-b654e1dd8bca6b5831f8d58902a7c573ebb1cb03.tar.gz ruby-b654e1dd8bca6b5831f8d58902a7c573ebb1cb03.tar.xz ruby-b654e1dd8bca6b5831f8d58902a7c573ebb1cb03.zip |
* 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: http://svn.ruby-lang.org/repos/ruby/trunk@3504 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'variable.c')
-rw-r--r-- | variable.c | 25 |
1 files changed, 22 insertions, 3 deletions
diff --git a/variable.c b/variable.c index 4a7bcd4ee..9ac004e7f 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,12 +985,30 @@ 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; ID id; |