From d1bc7caecaf337976351934d5910726106601bd9 Mon Sep 17 00:00:00 2001 From: Tomasz Dabrowski Date: Fri, 10 Feb 2017 15:17:42 +0100 Subject: Optimization for String#* for 1-byte strings --- src/string.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'src/string.c') diff --git a/src/string.c b/src/string.c index c370e0723..2e8ebda32 100644 --- a/src/string.c +++ b/src/string.c @@ -870,7 +870,9 @@ mrb_str_times(mrb_state *mrb, mrb_value self) str2 = str_new(mrb, 0, len); str_with_class(mrb, str2, self); p = RSTR_PTR(str2); - if (len > 0) { + if (len == 1) { + memset(p, RSTRING_PTR(self)[0], len); + } else if (len > 0) { n = RSTRING_LEN(self); memcpy(p, RSTRING_PTR(self), n); while (n <= len/2) { -- cgit v1.2.3