diff options
author | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2000-08-28 09:53:42 +0000 |
---|---|---|
committer | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2000-08-28 09:53:42 +0000 |
commit | 0a2f8b61d47116a2f2e17f6026fd7f17c2f15878 (patch) | |
tree | 04d1097b4a3e8e795f16306fe9f350a57a0f0057 /variable.c | |
parent | df9d49d0881d9596b9b7d23dbd42950d5048bd9d (diff) |
matz
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@906 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'variable.c')
-rw-r--r-- | variable.c | 51 |
1 files changed, 50 insertions, 1 deletions
diff --git a/variable.c b/variable.c index 3885693d9a..8ed31ca812 100644 --- a/variable.c +++ b/variable.c @@ -1054,8 +1054,8 @@ rb_autoload_load(id) st_delete(autoload_tbl, &id, &modname); module = rb_str_new2(modname); - FL_UNSET(module, FL_TAINT); free(modname); + FL_UNSET(module, FL_TAINT); rb_f_require(Qnil, module); } @@ -1395,6 +1395,55 @@ rb_cvar_defined(klass, id) return Qfalse; } +int +rb_cvar_defined_singleton(obj, id) + VALUE obj; + ID id; +{ + switch (TYPE(obj)) { + case T_MODULE: + case T_CLASS: + break; + default: + obj = CLASS_OF(obj); + break; + } + return rb_cvar_defined(obj, id); +} + +void +rb_cvar_set_singleton(obj, id, value) + VALUE obj; + ID id; + VALUE value; +{ + switch (TYPE(obj)) { + case T_MODULE: + case T_CLASS: + break; + default: + obj = CLASS_OF(obj); + break; + } + rb_cvar_set(obj, id, value); +} + +VALUE +rb_cvar_get_singleton(obj, id) + VALUE obj; + ID id; +{ + switch (TYPE(obj)) { + case T_MODULE: + case T_CLASS: + break; + default: + obj = CLASS_OF(obj); + break; + } + return rb_cvar_get(obj, id); +} + void rb_cv_set(klass, name, val) VALUE klass; |