mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
Avoid unnecessary copying when removing the leading part of a string
Remove the superfluous str_modify_keep_cr() call from rb_str_update(). It ends up calling either rb_str_drop_bytes() or rb_str_splice_0(), which already does checks if necessary. The extra call makes the string "independent". This is not always wanted, in other words, it can keep the same shared root when merely removing the leading part of a shared string.
This commit is contained in:
parent
9faa9ced96
commit
aff6534e32
Notes:
git
2022-09-09 16:03:43 +09:00
1 changed files with 0 additions and 1 deletions
1
string.c
1
string.c
|
@ -5359,7 +5359,6 @@ rb_str_update(VALUE str, long beg, long len, VALUE val)
|
|||
if (len > slen - beg) {
|
||||
len = slen - beg;
|
||||
}
|
||||
str_modify_keep_cr(str);
|
||||
p = str_nth(RSTRING_PTR(str), RSTRING_END(str), beg, enc, singlebyte);
|
||||
if (!p) p = RSTRING_END(str);
|
||||
e = str_nth(p, RSTRING_END(str), len, enc, singlebyte);
|
||||
|
|
Loading…
Reference in a new issue