Skip to content

Commit 10f0bc0

Browse files
Don't mess with the original in String::substring
Before, substring would (temporarily) add a \0 in the original string at the end of the substring, so the substring could be copied into a new String object. However, now that the String::copy() method can work with non-nul-terminated strings (by passing an explicit length), this trick is not needed and we can just call the copy method instead.
1 parent 581941e commit 10f0bc0

File tree

1 file changed

+1
-4
lines changed

1 file changed

+1
-4
lines changed

Diff for: api/String.cpp

+1-4
Original file line numberDiff line numberDiff line change
@@ -616,10 +616,7 @@ String String::substring(unsigned int left, unsigned int right) const
616616
String out;
617617
if (left >= len) return out;
618618
if (right > len) right = len;
619-
char temp = buffer[right]; // save the replaced character
620-
buffer[right] = '\0';
621-
out = buffer + left; // pointer arithmetic
622-
buffer[right] = temp; //restore character
619+
out.copy(buffer + left, right - left);
623620
return out;
624621
}
625622

0 commit comments

Comments
 (0)