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 | 770303d5aa3ccc7bdc7b5c3a0552f96238f04dfe (patch) | |
| tree | 04d1097b4a3e8e795f16306fe9f350a57a0f0057 /variable.c | |
| parent | e0f3aab312df60a890524c5b922f0c6525adaf18 (diff) | |
| download | ruby-770303d5aa3ccc7bdc7b5c3a0552f96238f04dfe.tar.gz ruby-770303d5aa3ccc7bdc7b5c3a0552f96238f04dfe.tar.xz ruby-770303d5aa3ccc7bdc7b5c3a0552f96238f04dfe.zip | |
matz
git-svn-id: http://svn.ruby-lang.org/repos/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 3885693d9..8ed31ca81 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; |
