From 747e3c73e02a510f302116a491bc2359e156c407 Mon Sep 17 00:00:00 2001 From: nobu Date: Tue, 14 Jan 2014 02:48:07 +0000 Subject: strscan.c: make string directly * ext/strscan/strscan.c (inspect1): extract intermediate string from the buffer directly, like as inspect2. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44591 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ext/strscan/strscan.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) (limited to 'ext/strscan/strscan.c') diff --git a/ext/strscan/strscan.c b/ext/strscan/strscan.c index 177cfddc15..a62616ceea 100644 --- a/ext/strscan/strscan.c +++ b/ext/strscan/strscan.c @@ -1186,20 +1186,20 @@ strscan_inspect(VALUE self) static VALUE inspect1(struct strscanner *p) { - char buf[BUFSIZE]; - char *bp = buf; + VALUE str; long len; if (p->curr == 0) return rb_str_new2(""); if (p->curr > INSPECT_LENGTH) { - strcpy(bp, "..."); bp += 3; - len = INSPECT_LENGTH; + str = rb_str_new_cstr("..."); + len = INSPECT_LENGTH; } else { - len = p->curr; + str = rb_str_new(0, 0); + len = p->curr; } - memcpy(bp, CURPTR(p) - len, len); bp += len; - return rb_str_dump(rb_str_new(buf, bp - buf)); + rb_str_cat2(str, CURPTR(p) - len, len); + return rb_str_dump(str); } static VALUE -- cgit v1.2.3