Merge "libutil: no special copy from StaticString16" am: 7d067aee62
am: ece939ecc9
Original change: https://android-review.googlesource.com/c/platform/system/core/+/1751786 Change-Id: Ic13c3a84471160c534b0e84ac5d0987f457eef75
This commit is contained in:
commit
b8e683537f
2 changed files with 18 additions and 18 deletions
|
@ -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) {
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue