Revert "Add try-with-resources scope method for timing." This reverts commit d216cb99039366ed37906cc786f5c01d3da97442. Reason for revert: Triggers assertion errors when the compiler is the input (b/148102986) Change-Id: I20ea550619e2cd6b2f05f2913507b8aea173bebe
diff --git a/src/main/java/com/android/tools/r8/R8.java b/src/main/java/com/android/tools/r8/R8.java index 1e73572..58e68dc 100644 --- a/src/main/java/com/android/tools/r8/R8.java +++ b/src/main/java/com/android/tools/r8/R8.java
@@ -88,7 +88,6 @@ import com.android.tools.r8.utils.StringDiagnostic; import com.android.tools.r8.utils.ThreadUtils; import com.android.tools.r8.utils.Timing; -import com.android.tools.r8.utils.Timing.TimingScope; import com.google.common.collect.ImmutableSet; import com.google.common.collect.Iterables; import com.google.common.io.ByteStreams; @@ -265,8 +264,9 @@ appView.setAppServices(AppServices.builder(appView).build()); List<ProguardConfigurationRule> synthesizedProguardRules = new ArrayList<>(); + timing.begin("Strip unused code"); Set<DexType> classesToRetainInnerClassAttributeFor = null; - try (TimingScope ignored = timing.scope("Strip unused code")) { + try { Set<DexType> missingClasses = appView.appInfo().getMissingClasses(); missingClasses = filterMissingClasses( missingClasses, options.getProguardConfiguration().getDontWarnPatterns()); @@ -360,6 +360,9 @@ new AnnotationRemover(appView.withLiveness(), classesToRetainInnerClassAttributeFor) .ensureValid() .run(); + + } finally { + timing.end(); } assert appView.appInfo().hasLiveness();
diff --git a/src/main/java/com/android/tools/r8/utils/Timing.java b/src/main/java/com/android/tools/r8/utils/Timing.java index 5f7ef67..77df36a 100644 --- a/src/main/java/com/android/tools/r8/utils/Timing.java +++ b/src/main/java/com/android/tools/r8/utils/Timing.java
@@ -57,8 +57,8 @@ } @Override - public TimingScope scope(String title) { - return () -> {}; + public void scope(String title, TimingScope fn) { + // Ignore. } }; @@ -336,14 +336,17 @@ top.report(0, top); } - public TimingScope scope(String title) { + public void scope(String title, TimingScope fn) { begin(title); - return this::end; + try { + fn.apply(); + } finally { + end(); + } } - public interface TimingScope extends AutoCloseable { - @Override - void close(); + public interface TimingScope { + void apply(); } private static Map<String, MemInfo> computeMemoryInformation() {