Merge "Speed up WriteKeepSet when generate_conditional_proguard_rules is off."
This commit is contained in:
@@ -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 ")
|
||||||
|
|||||||
Reference in New Issue
Block a user