diff options
author | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2001-05-30 09:12:34 +0000 |
---|---|---|
committer | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2001-05-30 09:12:34 +0000 |
commit | abfaac7a6cbdbfad9e7c05bc5ebcb4df57906fcb (patch) | |
tree | 4d406191345ff9f25e3a3c9ce5f85a3a13e6f7d1 /class.c | |
parent | 4cd1cd7201757185e63a5a33181932a6670887ad (diff) | |
download | ruby-abfaac7a6cbdbfad9e7c05bc5ebcb4df57906fcb.tar.gz |
* ruby.c (proc_options): unexpected SecurityError happens when -T4.
* regex.c (re_compile_pattern): * \1 .. \9 should be
backreferences always.
* regex.c (re_match): backreferences corresponding to
unclosed/unmatched parentheses should fail always.
* string.c (rb_str_cat): use rb_str_buf_cat() if possible. [new]
* string.c (rb_str_append): ditto.
* string.c (rb_str_buf_cat): remove unnecessary check (type,
taint, modify) to gain performance.
* string.c (rb_str_buf_append): ditto.
* string.c (rb_str_buf_new): buffering string function. [new]
* string.c (rb_str_buf_append): ditto.
* string.c (rb_str_buf_cat): ditto.
* time.c (make_time_t): local time adjustment revised.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1476 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'class.c')
-rw-r--r-- | class.c | 12 |
1 files changed, 11 insertions, 1 deletions
@@ -484,19 +484,29 @@ rb_class_private_instance_methods(argc, argv, mod) } VALUE -rb_obj_singleton_methods(obj) +rb_obj_singleton_methods(argc, argv, obj) + int argc; + VALUE *argv; VALUE obj; { + VALUE all; VALUE ary; VALUE klass; VALUE *p, *q, *pend; + rb_scan_args(argc, argv, "01", &all); ary = rb_ary_new(); klass = CLASS_OF(obj); while (klass && FL_TEST(klass, FL_SINGLETON)) { st_foreach(RCLASS(klass)->m_tbl, ins_methods_i, ary); klass = RCLASS(klass)->super; } + if (RTEST(all)) { + while (klass && TYPE(klass) == T_ICLASS) { + st_foreach(RCLASS(klass)->m_tbl, ins_methods_i, ary); + klass = RCLASS(klass)->super; + } + } p = q = RARRAY(ary)->ptr; pend = p + RARRAY(ary)->len; while (p < pend) { if (*p == Qnil) { |