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

Commit cdc260b7 authored by Keisuke Kuroyanagi's avatar Keisuke Kuroyanagi Committed by Android (Google) Code Review
Browse files

Merge "Fix TrieMap: Cannot create next level map of small value entry."

parents 9107d8be 9c9f2d06
Loading
Loading
Loading
Loading
+1 −1
Original line number Original line Diff line number Diff line
@@ -85,7 +85,7 @@ int TrieMap::getNextLevelBitmapEntryIndex(const int key, const int bitmapEntryIn
    if (!writeEntry(EMPTY_BITMAP_ENTRY, valueEntryIndex + 1)) {
    if (!writeEntry(EMPTY_BITMAP_ENTRY, valueEntryIndex + 1)) {
        return INVALID_INDEX;
        return INVALID_INDEX;
    }
    }
    if (!writeField1(valueEntryIndex | TERMINAL_LINK_FLAG, valueEntryIndex)) {
    if (!writeField1(valueEntryIndex | TERMINAL_LINK_FLAG, terminalEntryIndex)) {
        return INVALID_INDEX;
        return INVALID_INDEX;
    }
    }
    return valueEntryIndex + 1;
    return valueEntryIndex + 1;
+1 −0
Original line number Original line Diff line number Diff line
@@ -40,6 +40,7 @@ TEST(TrieMapTest, TestSetAndGet) {
    trieMap.putRoot(11, 1000);
    trieMap.putRoot(11, 1000);
    EXPECT_EQ(1000ull, trieMap.getRoot(11).mValue);
    EXPECT_EQ(1000ull, trieMap.getRoot(11).mValue);
    const int next = trieMap.getNextLevelBitmapEntryIndex(10);
    const int next = trieMap.getNextLevelBitmapEntryIndex(10);
    EXPECT_EQ(1000ull, trieMap.getRoot(10).mValue);
    trieMap.put(9, 9, next);
    trieMap.put(9, 9, next);
    EXPECT_EQ(9ull, trieMap.get(9, next).mValue);
    EXPECT_EQ(9ull, trieMap.get(9, next).mValue);
    EXPECT_FALSE(trieMap.get(11, next).mIsValid);
    EXPECT_FALSE(trieMap.get(11, next).mIsValid);