diff --git a/ChangeLog b/ChangeLog index 2dc5065f77..452231eea1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -3,6 +3,11 @@ Sun Aug 24 01:02:48 2003 Nobuyoshi Nakada * file.c (file_expand_path): performance improvement. [ruby-talk:79748] +Sat Aug 23 23:41:16 2003 Yukihiro Matsumoto + + * 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 * ext/nkf/nkf.c (rb_nkf_putchar): should use rb_str_resize() to just diff --git a/eval.c b/eval.c index 7f586a1e43..38edb34856 100644 --- a/eval.c +++ b/eval.c @@ -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; } } diff --git a/file.c b/file.c index 223b243fc7..3a09b4e628 100644 --- a/file.c +++ b/file.c @@ -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);