String/StringVal: Replace char*/string constructors with string_view

This commit is contained in:
Tim Wojtulewicz 2022-02-04 13:52:04 -07:00
parent 16ee942a8d
commit 4f470c24ed
4 changed files with 10 additions and 30 deletions

View file

@ -47,12 +47,7 @@ String::String(const u_char* str, int arg_n, bool add_NUL) : String()
Set(str, arg_n, add_NUL);
}
String::String(const char* str) : String()
{
Set(str);
}
String::String(const std::string& str) : String()
String::String(std::string_view str) : String()
{
Set(str);
}
@ -147,31 +142,21 @@ void String::Set(const u_char* str, int len, bool add_NUL)
use_free_to_delete = false;
}
void String::Set(const char* str)
void String::Set(std::string_view str)
{
Reset();
if ( str )
if ( str.data() )
{
n = strlen(str);
n = str.size();
b = new u_char[n + 1];
memcpy(b, str, n + 1);
memcpy(b, str.data(), n);
b[n] = 0;
final_NUL = true;
use_free_to_delete = false;
}
}
void String::Set(const std::string& str)
{
Reset();
n = str.size();
b = new u_char[n + 1];
memcpy(b, str.c_str(), n + 1);
final_NUL = true;
use_free_to_delete = false;
}
void String::Set(const String& str)
{
*this = str;