Minimal fix for issue with LiveEdit test

Change-Id: I8f03d8aa6e3d186acf99e35ec8ca7e540ef56c0d
Bug: b/399835968
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 ee0634a..9995d91 100644
--- a/src/main/java/com/android/tools/r8/utils/Timing.java
+++ b/src/main/java/com/android/tools/r8/utils/Timing.java
@@ -310,7 +310,11 @@
     private Node slowest = new Node("<zero>", false);
 
     private TimingMerger(String title, int numberOfThreads, Timing timing) {
-      parent = timing.stack.peek();
+      Deque<Timing.Node> stack =
+          timing instanceof TimingDelegateBase
+              ? ((TimingDelegateBase) timing).timing.stack
+              : timing.stack;
+      parent = stack.peek();
       merged =
           new Node(title, timing.trackMemory) {
             @Override
@@ -378,7 +382,11 @@
         if (timing == empty()) {
           continue;
         }
-        assert timing.stack.isEmpty() : "Expected sub-timing to have completed prior to merge";
+        Deque<Timing.Node> stack =
+            timing instanceof TimingDelegateBase
+                ? ((TimingDelegateBase) timing).timing.stack
+                : timing.stack;
+        assert stack.isEmpty() : "Expected sub-timing to have completed prior to merge";
         ++taskCount;
         merged.duration += timing.top.duration;
         if (slowest != null && timing.top.duration > slowest.duration) {