Extract out a delegation base for timing.
Change-Id: I688b55e2f66a109a246f0a65fbbc11816212a640
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 dc7db26..7fef060 100644
--- a/src/main/java/com/android/tools/r8/utils/Timing.java
+++ b/src/main/java/com/android/tools/r8/utils/Timing.java
@@ -62,13 +62,11 @@
return Timing.EMPTY;
}
- private static class TimingWithCancellation extends Timing {
- private final InternalOptions options;
+ private abstract static class TimingDelegateBase extends Timing {
private final Timing timing;
- TimingWithCancellation(InternalOptions options, Timing timing) {
- super("<cancel>", false);
- this.options = options;
+ public TimingDelegateBase(String title, Timing timing) {
+ super(title);
this.timing = timing;
}
@@ -79,9 +77,6 @@
@Override
public void begin(String title) {
- if (options.checkIfCancelled()) {
- throw new CancelCompilationException();
- }
timing.begin(title);
}
@@ -106,6 +101,23 @@
}
}
+ private static class TimingWithCancellation extends TimingDelegateBase {
+ private final InternalOptions options;
+
+ TimingWithCancellation(InternalOptions options, Timing timing) {
+ super("<cancel>", timing);
+ this.options = options;
+ }
+
+ @Override
+ public void begin(String title) {
+ if (options.checkIfCancelled()) {
+ throw new CancelCompilationException();
+ }
+ super.begin(title);
+ }
+ }
+
public static Timing create(String title, InternalOptions options) {
// We also create a timer when running assertions to validate wellformedness of the node stack.
Timing timing =