summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--file.c2
2 files changed, 6 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 292853481c..1c479bc42f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,4 +1,7 @@
-Tue Oct 16 11:27:04 2012 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Tue Oct 16 11:30:18 2012 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * file.c (rb_file_join): hide the result under construction until
+ return.
* file.c (rb_file_join): check nul-byte only for strings, since
FilePathStringValue() does it. [ruby-core:48012] [Bug #7168]
diff --git a/file.c b/file.c
index 8ffd874a9c..3d1ffe4036 100644
--- a/file.c
+++ b/file.c
@@ -3936,6 +3936,7 @@ rb_file_join(VALUE ary, VALUE sep)
len += RSTRING_LEN(sep) * (RARRAY_LEN(ary) - 1);
}
result = rb_str_buf_new(len);
+ RBASIC(result)->klass = 0;
OBJ_INFECT(result, ary);
for (i=0; i<RARRAY_LEN(ary); i++) {
tmp = RARRAY_PTR(ary)[i];
@@ -3973,6 +3974,7 @@ rb_file_join(VALUE ary, VALUE sep)
}
rb_str_buf_append(result, tmp);
}
+ RBASIC(result)->klass = rb_cString;
return result;
}