diff options
| author | Tomasz Dabrowski <[email protected]> | 2017-02-10 15:17:42 +0100 |
|---|---|---|
| committer | Tomasz Dabrowski <[email protected]> | 2017-02-10 15:31:33 +0100 |
| commit | d1bc7caecaf337976351934d5910726106601bd9 (patch) | |
| tree | 9a97ca0f35e20c5cc7109c16601f89c44a2a7c69 /src/string.c | |
| parent | ac9d04f4af6e229ad8e0f306c745b07b404978f5 (diff) | |
| download | mruby-d1bc7caecaf337976351934d5910726106601bd9.tar.gz mruby-d1bc7caecaf337976351934d5910726106601bd9.zip | |
Optimization for String#* for 1-byte strings
Diffstat (limited to 'src/string.c')
| -rw-r--r-- | src/string.c | 4 |
1 files changed, 3 insertions, 1 deletions
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) { |
