summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--io.c5
2 files changed, 6 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog
index b1bd6e67cb..be3548be62 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Wed Apr 14 17:56:06 2010 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * io.c (io_shift_cbuf): should terminate.
+ http://golf.shinh.org/p.rb?DECimal+number+to+BINary#Ruby
+
Wed Apr 14 16:29:02 2010 Nobuyoshi Nakada <nobu@ruby-lang.org>
* gc.c (GET_STACK_BOUNDS): fixed macro argument names. a patch from
diff --git a/io.c b/io.c
index 2656b2bae8..3afa413183 100644
--- a/io.c
+++ b/io.c
@@ -1698,11 +1698,8 @@ io_shift_cbuf(rb_io_t *fptr, int len, VALUE *strp)
*strp = str = rb_str_new(fptr->cbuf+fptr->cbuf_off, len);
}
else {
- size_t slen;
str = *strp;
- slen = RSTRING_LEN(str);
- rb_str_resize(str, RSTRING_LEN(str) + len);
- memcpy(RSTRING_PTR(str)+slen, fptr->cbuf+fptr->cbuf_off, len);
+ rb_str_cat(str, fptr->cbuf+fptr->cbuf_off, len);
}
fptr->cbuf_off += len;
fptr->cbuf_len -= len;