diff options
-rw-r--r-- | ChangeLog | 7 | ||||
-rw-r--r-- | file.c | 1 | ||||
-rw-r--r-- | string.c | 1 |
3 files changed, 8 insertions, 1 deletions
@@ -1,3 +1,10 @@ +Tue Jan 12 21:56:00 2010 Tanaka Akira <akr@fsij.org> + + * string.c (rb_str_set_len): call rb_str_modify. + + * file.c (realpath_rec): don't call rb_str_modify before + rb_str_set_len. + Tue Jan 12 20:44:14 2010 Tanaka Akira <akr@fsij.org> * file.c (realpath_internal): call rb_secure. @@ -3098,7 +3098,6 @@ realpath_rec(long *prefixlenp, VALUE *resolvedp, char *unresolved, VALUE loopche if (*prefixlenp < RSTRING_LEN(*resolvedp)) { char *resolved_names = RSTRING_PTR(*resolvedp) + *prefixlenp; long len = rb_path_last_separator(resolved_names) - resolved_names; - rb_str_modify(*resolvedp); rb_str_set_len(*resolvedp, *prefixlenp + len); } } @@ -1667,6 +1667,7 @@ rb_str_unlocktmp(VALUE str) void rb_str_set_len(VALUE str, long len) { + rb_str_modify(str); STR_SET_LEN(str, len); RSTRING_PTR(str)[len] = '\0'; } |