summaryrefslogtreecommitdiffhomepage
path: root/Private/Source/String.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'Private/Source/String.cxx')
-rw-r--r--Private/Source/String.cxx9
1 files changed, 4 insertions, 5 deletions
diff --git a/Private/Source/String.cxx b/Private/Source/String.cxx
index 23955068..a27a3a37 100644
--- a/Private/Source/String.cxx
+++ b/Private/Source/String.cxx
@@ -60,8 +60,7 @@ ErrorOr<StringView> StringBuilder::Construct(const Char *data) {
StringView view(rt_string_len(data));
- rt_copy_memory(reinterpret_cast<voidPtr>(const_cast<Char *>(data)),
- reinterpret_cast<voidPtr>(view.Data()), view.Length());
+ view += data;
return ErrorOr<StringView>(view);
}
@@ -165,16 +164,16 @@ const char *StringBuilder::Format(const char *fmt, const char *fmt2) {
}
static void string_append(char *lhs, char *rhs, int cur) {
- if (lhs && rhs && cur < rt_string_len(lhs)) {
+ if (lhs && rhs) {
SizeT sz_rhs = rt_string_len(rhs);
+ if (sz_rhs == 0) return;
+
rt_copy_memory(rhs, lhs + cur, sz_rhs);
}
}
StringView &StringView::operator+=(const Char *rhs) {
- if (rt_string_len(rhs) > rt_string_len(this->m_Data)) return *this;
-
string_append(this->m_Data, const_cast<char *>(rhs), this->m_Cur);
this->m_Cur += rt_string_len(rhs);