Revert "Change SimpleStringBuilder::Append to not use strcpyn and SIZE_UNKNOWN"
This reverts commit e779847fb6499ac2dc4757de8c625ac377e9d0d4.
Reason for revert: Breaks downstream projects, depending on indirect include.
Original change's description:
> Change SimpleStringBuilder::Append to not use strcpyn and SIZE_UNKNOWN
>
> Also add explicit includes of rtc_base/string_utils.h in files depending on it.
>
> Bug: webrtc:6424
> Change-Id: Id6b53937ab2d185d092a5d8863018fd5f1a88e27
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/135744
> Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
> Commit-Queue: Niels Moller <nisse@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#27903}
TBR=kwiberg@webrtc.org,nisse@webrtc.org
Change-Id: Ib04280d401b66fe832d3fdc9293e39276710f973
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:6424
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/135945
Reviewed-by: Niels Moller <nisse@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27909}
diff --git a/rtc_base/strings/string_builder.cc b/rtc_base/strings/string_builder.cc
index 0583dc7..adf4fa9 100644
--- a/rtc_base/strings/string_builder.cc
+++ b/rtc_base/strings/string_builder.cc
@@ -25,7 +25,7 @@
}
SimpleStringBuilder& SimpleStringBuilder::operator<<(const char* str) {
- return Append(str, strlen(str));
+ return Append(str);
}
SimpleStringBuilder& SimpleStringBuilder::operator<<(char ch) {
@@ -106,12 +106,11 @@
SimpleStringBuilder& SimpleStringBuilder::Append(const char* str,
size_t length) {
- RTC_DCHECK_LT(size_ + length, buffer_.size())
- << "Buffer size was insufficient";
- const size_t chars_added = rtc::SafeMin(length, buffer_.size() - size_ - 1);
- memcpy(&buffer_[size_], str, chars_added);
+ const size_t chars_added =
+ rtc::strcpyn(&buffer_[size_], buffer_.size() - size_, str, length);
size_ += chars_added;
- buffer_[size_] = '\0';
+ RTC_DCHECK_EQ(chars_added, length == SIZE_UNKNOWN ? std::strlen(str) : length)
+ << "Buffer size was insufficient";
RTC_DCHECK(IsConsistent());
return *this;
}