diff options
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | file.c | 10 |
2 files changed, 9 insertions, 7 deletions
@@ -1,3 +1,9 @@ +Thu Mar 25 23:17:16 2010 Yusuke Endoh <mame@tsg.ne.jp> + + * file.c (rb_get_path_check): prefer #to_path over #to_str. a patch + originally written by me, and modified by Nobuyoshi Nakada. + [ruby-core:24257] + Thu Mar 25 18:10:08 2010 Kazuhiro NISHIYAMA <zn@mbf.nifty.com> * NEWS: Array#{uniq,uniq!} can take a block. see [ruby-dev:37998] @@ -129,18 +129,14 @@ rb_get_path_check(VALUE obj, int level) if (insecure_obj_p(obj, level)) { rb_insecure_operation(); } - tmp = rb_check_string_type(obj); - if (!NIL_P(tmp)) goto exit; CONST_ID(to_path, "to_path"); - if (rb_respond_to(obj, to_path)) { - tmp = rb_funcall(obj, to_path, 0, 0); - } - else { + tmp = rb_check_funcall(obj, to_path, 0, 0); + if (tmp == Qundef) { tmp = obj; } StringValue(tmp); - exit: + tmp = file_path_convert(tmp); StringValueCStr(tmp); if (obj != tmp && insecure_obj_p(tmp, level)) { |