mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
19991004
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@536 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
d426749ff0
commit
758cb647c7
20 changed files with 125 additions and 65 deletions
12
variable.c
12
variable.c
|
@ -916,7 +916,7 @@ VALUE
|
|||
rb_obj_instance_variables(obj)
|
||||
VALUE obj;
|
||||
{
|
||||
VALUE ary;
|
||||
VALUE ary = rb_ary_new();
|
||||
|
||||
if (!FL_TEST(obj, FL_TAINT) && rb_safe_level() >= 4)
|
||||
rb_raise(rb_eSecurityError, "Insecure: can't get metainfo");
|
||||
|
@ -924,24 +924,22 @@ rb_obj_instance_variables(obj)
|
|||
case T_OBJECT:
|
||||
case T_CLASS:
|
||||
case T_MODULE:
|
||||
ary = rb_ary_new();
|
||||
if (ROBJECT(obj)->iv_tbl) {
|
||||
st_foreach(ROBJECT(obj)->iv_tbl, ivar_i, ary);
|
||||
}
|
||||
return ary;
|
||||
break;
|
||||
default:
|
||||
if (!generic_iv_tbl) return Qnil;
|
||||
if (!generic_iv_tbl) break;
|
||||
if (FL_TEST(obj, FL_EXIVAR) || rb_special_const_p(obj)) {
|
||||
st_table *tbl;
|
||||
|
||||
if (st_lookup(generic_iv_tbl, obj, &tbl)) {
|
||||
ary = rb_ary_new();
|
||||
st_foreach(tbl, ivar_i, ary);
|
||||
return ary;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
return Qnil;
|
||||
return ary;
|
||||
}
|
||||
|
||||
VALUE
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue