Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ece939ec authored by Treehugger Robot's avatar Treehugger Robot Committed by Automerger Merge Worker
Browse files

Merge "libutil: no special copy from StaticString16" am: 7d067aee

Original change: https://android-review.googlesource.com/c/platform/system/core/+/1751786

Change-Id: Icdfa1f8ba13af20e8b9d18104429fef4371d85c4
parents 32ceaa12 7d067aee
Loading
Loading
Loading
Loading
+18 −8
Original line number Diff line number Diff line
@@ -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,18 +189,24 @@ TEST(String16Test, StringSetToStaticString) {
    EXPECT_STR16EQ(u"Verify me", another);
}

TEST(String16Test, StringMoveAssignFromStaticString) {
TEST(String16Test, StringCopyAssignFromStaticString) {
    StaticString16 tmp(u"Verify me");
    String16 another(u"nonstatic");
    another = std::move(tmp);
    another = 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, StringMoveAssignFromStaticString) {
    StaticString16 tmp(u"Verify me");
    String16 another(u"nonstatic");
    another = std::move(tmp);
    EXPECT_STR16EQ(u"Verify me", another);
    EXPECT_TRUE(another.isStaticString());
}

TEST(String16Test, EmptyStringIsStatic) {
    String16 tmp("");
    EXPECT_TRUE(tmp.isStaticString());
+0 −10
Original line number Diff line number Diff line
@@ -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