libutil: no special copy from StaticString16

String16's ctors already handle static strings, so we don't need a
specialized constructor which accepts StaticString16.

Bug: n/a
Test: libutils_test
Change-Id: I93a1ba70d743ff9c73f113d53ffba73cef6adade
This commit is contained in:
Jooyung Han 2021-06-30 09:04:29 +09:00
parent 98b396e785
commit 6f92640d45
2 changed files with 18 additions and 18 deletions

View File

@ -58,6 +58,14 @@ TEST(String16Test, Copy) {
EXPECT_STR16EQ(u"Verify me", another);
}
TEST(String16Test, CopyAssign) {
String16 tmp("Verify me");
String16 another;
another = tmp;
EXPECT_STR16EQ(u"Verify me", tmp);
EXPECT_STR16EQ(u"Verify me", another);
}
TEST(String16Test, Move) {
String16 tmp("Verify me");
String16 another(std::move(tmp));
@ -130,10 +138,6 @@ TEST(String16Test, StaticStringMove) {
String16 another(std::move(tmp));
EXPECT_STR16EQ(u"Verify me", another);
EXPECT_TRUE(another.isStaticString());
// move/copy from StaticString16 is specialized (just copy the handle).
// no extra actions required.
EXPECT_STR16EQ(u"Verify me", tmp);
EXPECT_TRUE(tmp.isStaticString());
}
TEST(String16Test, StaticStringSize) {
@ -185,16 +189,22 @@ TEST(String16Test, StringSetToStaticString) {
EXPECT_STR16EQ(u"Verify me", another);
}
TEST(String16Test, StringCopyAssignFromStaticString) {
StaticString16 tmp(u"Verify me");
String16 another(u"nonstatic");
another = tmp;
EXPECT_STR16EQ(u"Verify me", another);
EXPECT_TRUE(another.isStaticString());
EXPECT_STR16EQ(u"Verify me", tmp);
EXPECT_TRUE(tmp.isStaticString());
}
TEST(String16Test, StringMoveAssignFromStaticString) {
StaticString16 tmp(u"Verify me");
String16 another(u"nonstatic");
another = std::move(tmp);
EXPECT_STR16EQ(u"Verify me", another);
EXPECT_TRUE(another.isStaticString());
// move/copy from StaticString16 is specialized (just copy handle).
// no extra actions required.
EXPECT_STR16EQ(u"Verify me", tmp);
EXPECT_TRUE(tmp.isStaticString());
}
TEST(String16Test, EmptyStringIsStatic) {

View File

@ -174,16 +174,6 @@ protected:
template <size_t N>
explicit constexpr String16(const StaticData<N>& s) : mString(s.data) {}
public:
template <size_t N>
explicit constexpr String16(const StaticString16<N>& s) : mString(s.mString) {}
template <size_t N>
constexpr String16& operator=(const StaticString16<N>& s) {
release();
mString = s.mString;
return *this;
}
};
// String16 can be trivially moved using memcpy() because moving does not