diff options
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | eval.c | 7 | ||||
-rw-r--r-- | file.c | 4 |
3 files changed, 11 insertions, 5 deletions
@@ -3,6 +3,11 @@ Sun Aug 24 01:02:48 2003 Nobuyoshi Nakada <nobu@ruby-lang.org> * file.c (file_expand_path): performance improvement. [ruby-talk:79748] +Sat Aug 23 23:41:16 2003 Yukihiro Matsumoto <matz@ruby-lang.org> + + * file.c (rb_file_s_expand_path): avoid calling rb_scan_args() for + apparent cases. [ruby-talk:79748] + Sat Aug 23 18:56:53 2003 Nobuyoshi Nakada <nobu@ruby-lang.org> * ext/nkf/nkf.c (rb_nkf_putchar): should use rb_str_resize() to just @@ -4256,16 +4256,13 @@ VALUE rb_yield_splat(values) VALUE values; { - VALUE tmp; int avalue = Qfalse; - tmp = rb_check_array_type(values); - if (!NIL_P(tmp)) { - if (RARRAY(tmp)->len == 0) { + if (TYPE(values) == T_ARRAY) { + if (RARRAY(values)->len == 0) { values = Qundef; } else { - values = tmp; avalue = Qtrue; } } @@ -1758,6 +1758,10 @@ rb_file_s_expand_path(argc, argv) VALUE *argv; { VALUE fname, dname; + + if (argc == 1) { + return rb_file_expand_path(argv[0], Qnil); + } rb_scan_args(argc, argv, "11", &fname, &dname); return rb_file_expand_path(fname, dname); |