From c1ffed60eccc8748a21acfdce133eae5119d5371 Mon Sep 17 00:00:00 2001 From: Tiger Wang Date: Fri, 28 Aug 2020 21:42:18 +0100 Subject: FastNBTWriter: AddString now uses string_view * Avoids an allocation for all those string literals we pass in --- src/WorldStorage/FastNBT.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'src/WorldStorage/FastNBT.cpp') diff --git a/src/WorldStorage/FastNBT.cpp b/src/WorldStorage/FastNBT.cpp index 5f979120b..ec43d2f12 100644 --- a/src/WorldStorage/FastNBT.cpp +++ b/src/WorldStorage/FastNBT.cpp @@ -614,12 +614,12 @@ void cFastNBTWriter::AddDouble(const AString & a_Name, double a_Value) -void cFastNBTWriter::AddString(const AString & a_Name, const AString & a_Value) +void cFastNBTWriter::AddString(const AString & a_Name, const std::string_view a_Value) { TagCommon(a_Name, TAG_String); - UInt16 len = htons(static_cast(a_Value.size())); - m_Result.append(reinterpret_cast(&len), 2); - m_Result.append(a_Value.c_str(), a_Value.size()); + const UInt16 Length = htons(static_cast(a_Value.size())); + m_Result.append(reinterpret_cast(&Length), sizeof(Length)); + m_Result.append(a_Value); } -- cgit v1.2.3