diff options
Diffstat (limited to 'variable.c')
-rw-r--r-- | variable.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/variable.c b/variable.c index dbc1967d02..d2669aaf6f 100644 --- a/variable.c +++ b/variable.c @@ -1480,6 +1480,10 @@ rb_mod_class_variables(obj) if (!OBJ_TAINTED(obj) && rb_safe_level() >= 4) rb_raise(rb_eSecurityError, "Insecure: can't get metainfo"); + if (FL_TEST(obj, FL_SINGLETON)) { + obj = rb_cvar_singleton(rb_iv_get(obj, "__attached__")); + } + for (;;) { if (RCLASS(obj)->iv_tbl) { st_foreach(RCLASS(obj)->iv_tbl, cv_i, ary); |