diff options
| -rw-r--r-- | tools/aapt2/java/ProguardRules.h | 6 | ||||
| -rw-r--r-- | tools/aapt2/java/ProguardRules_test.cpp | 8 |
2 files changed, 12 insertions, 2 deletions
diff --git a/tools/aapt2/java/ProguardRules.h b/tools/aapt2/java/ProguardRules.h index f9656d112b7b..b15df59f56a6 100644 --- a/tools/aapt2/java/ProguardRules.h +++ b/tools/aapt2/java/ProguardRules.h @@ -99,11 +99,13 @@ bool CollectLocations(const UsageLocation& location, const KeepSet& keep_set, // inline bool operator==(const UsageLocation& lhs, const UsageLocation& rhs) { + // The "source" member is ignored because we only need "name" for outputting + // keep rules; "source" is used for comments. return lhs.name == rhs.name; } -inline int operator<(const UsageLocation& lhs, const UsageLocation& rhs) { - return lhs.name.compare(rhs.name); +inline bool operator<(const UsageLocation& lhs, const UsageLocation& rhs) { + return lhs.name.compare(rhs.name) < 0; } // diff --git a/tools/aapt2/java/ProguardRules_test.cpp b/tools/aapt2/java/ProguardRules_test.cpp index 559b07af3e80..25b55ab003b0 100644 --- a/tools/aapt2/java/ProguardRules_test.cpp +++ b/tools/aapt2/java/ProguardRules_test.cpp @@ -364,4 +364,12 @@ TEST(ProguardRulesTest, TransitionRulesAreEmitted) { "-keep class com.foo.Bar { <init>(android.content.Context, android.util.AttributeSet); }")); } +TEST(ProguardRulesTest, UsageLocationComparator) { + proguard::UsageLocation location1 = {{"pkg", ResourceType::kAttr, "x"}}; + proguard::UsageLocation location2 = {{"pkg", ResourceType::kAttr, "y"}}; + + EXPECT_EQ(location1 < location2, true); + EXPECT_EQ(location2 < location1, false); +} + } // namespace aapt |