Merge "Speed up WriteKeepSet when generate_conditional_proguard_rules is off."

This commit is contained in:
Treehugger Robot
2019-11-12 23:55:41 +00:00
committed by Gerrit Code Review

View File

@@ -404,12 +404,15 @@ void WriteKeepSet(const KeepSet& keep_set, OutputStream* out, bool minimal_keep)
for (const auto& entry : keep_set.conditional_class_set_) { for (const auto& entry : keep_set.conditional_class_set_) {
std::set<UsageLocation> locations; std::set<UsageLocation> locations;
bool can_be_conditional = true; bool can_be_conditional = false;
for (const UsageLocation& location : entry.second) { if (keep_set.conditional_keep_rules_) {
can_be_conditional &= CollectLocations(location, keep_set, &locations); can_be_conditional = true;
for (const UsageLocation& location : entry.second) {
can_be_conditional &= CollectLocations(location, keep_set, &locations);
}
} }
if (keep_set.conditional_keep_rules_ && can_be_conditional) { if (can_be_conditional) {
for (const UsageLocation& location : locations) { for (const UsageLocation& location : locations) {
printer.Print("# Referenced at ").Println(location.source.to_string()); printer.Print("# Referenced at ").Println(location.source.to_string());
printer.Print("-if class **.R$layout { int ") printer.Print("-if class **.R$layout { int ")