Loading tools/aapt2/StringPool.cpp +4 −3 Original line number Diff line number Diff line Loading @@ -172,9 +172,10 @@ StringPool::Ref StringPool::MakeRef(const StringPiece& str, const Context& conte StringPool::Ref StringPool::MakeRefImpl(const StringPiece& str, const Context& context, bool unique) { if (unique) { auto iter = indexed_strings_.find(str); if (iter != std::end(indexed_strings_)) { return Ref(iter->second); for (auto& indexed_str : indexed_strings_) { if (str == indexed_str.first && context.priority == indexed_str.second->context.priority) { return Ref(indexed_str.second); } } } Loading tools/aapt2/StringPool_test.cpp +11 −1 Original line number Diff line number Diff line Loading @@ -61,6 +61,17 @@ TEST(StringPoolTest, DoNotInsertNewDuplicateString) { EXPECT_THAT(pool.size(), Eq(1u)); } TEST(StringPoolTest, DoNotDedupeSameStringDifferentPriority) { StringPool pool; StringPool::Ref ref_a = pool.MakeRef("wut", StringPool::Context(1)); StringPool::Ref ref_b = pool.MakeRef("wut", StringPool::Context(2)); EXPECT_THAT(*ref_a, Eq("wut")); EXPECT_THAT(*ref_b, Eq("wut")); EXPECT_THAT(pool.size(), Eq(2u)); } TEST(StringPoolTest, MaintainInsertionOrderIndex) { StringPool pool; Loading Loading @@ -292,7 +303,6 @@ TEST(StringPoolTest, Flatten) { } } TEST(StringPoolTest, MaxEncodingLength) { StdErrDiagnostics diag; using namespace android; // For NO_ERROR on Windows. Loading Loading
tools/aapt2/StringPool.cpp +4 −3 Original line number Diff line number Diff line Loading @@ -172,9 +172,10 @@ StringPool::Ref StringPool::MakeRef(const StringPiece& str, const Context& conte StringPool::Ref StringPool::MakeRefImpl(const StringPiece& str, const Context& context, bool unique) { if (unique) { auto iter = indexed_strings_.find(str); if (iter != std::end(indexed_strings_)) { return Ref(iter->second); for (auto& indexed_str : indexed_strings_) { if (str == indexed_str.first && context.priority == indexed_str.second->context.priority) { return Ref(indexed_str.second); } } } Loading
tools/aapt2/StringPool_test.cpp +11 −1 Original line number Diff line number Diff line Loading @@ -61,6 +61,17 @@ TEST(StringPoolTest, DoNotInsertNewDuplicateString) { EXPECT_THAT(pool.size(), Eq(1u)); } TEST(StringPoolTest, DoNotDedupeSameStringDifferentPriority) { StringPool pool; StringPool::Ref ref_a = pool.MakeRef("wut", StringPool::Context(1)); StringPool::Ref ref_b = pool.MakeRef("wut", StringPool::Context(2)); EXPECT_THAT(*ref_a, Eq("wut")); EXPECT_THAT(*ref_b, Eq("wut")); EXPECT_THAT(pool.size(), Eq(2u)); } TEST(StringPoolTest, MaintainInsertionOrderIndex) { StringPool pool; Loading Loading @@ -292,7 +303,6 @@ TEST(StringPoolTest, Flatten) { } } TEST(StringPoolTest, MaxEncodingLength) { StdErrDiagnostics diag; using namespace android; // For NO_ERROR on Windows. Loading