Fix bug in Value.getBaseline().

The method wasn't being overridden by InstanceValue.getBaseline as
intended, which would lead to broken links in the UI.

Test: m ahat-test, with regression test added.
Test: Manually confirm a link to a "was" part of a diffed field works
      in the UI.
Bug: 77943151

Change-Id: I98a40afe2161617ba2199574b4fd57a076fc8bde
diff --git a/tools/ahat/src/main/com/android/ahat/heapdump/Value.java b/tools/ahat/src/main/com/android/ahat/heapdump/Value.java
index b219bf1..d78f95b 100644
--- a/tools/ahat/src/main/com/android/ahat/heapdump/Value.java
+++ b/tools/ahat/src/main/com/android/ahat/heapdump/Value.java
@@ -209,7 +209,7 @@
   @Override
   public abstract String toString();
 
-  private Value getBaseline() {
+  Value getBaseline() {
     return this;
   }
 
@@ -396,7 +396,8 @@
       return mInstance.toString();
     }
 
-    public Value getBaseline() {
+    @Override
+    Value getBaseline() {
       return InstanceValue.pack(mInstance.getBaseline());
     }
 
diff --git a/tools/ahat/src/test/com/android/ahat/DiffTest.java b/tools/ahat/src/test/com/android/ahat/DiffTest.java
index 585f29a..b1952b2 100644
--- a/tools/ahat/src/test/com/android/ahat/DiffTest.java
+++ b/tools/ahat/src/test/com/android/ahat/DiffTest.java
@@ -18,6 +18,7 @@
 
 import com.android.ahat.heapdump.AhatHeap;
 import com.android.ahat.heapdump.AhatInstance;
+import com.android.ahat.heapdump.Value;
 import java.io.IOException;
 import org.junit.Test;
 
@@ -51,6 +52,9 @@
     assertEquals(b, a.getBaseline());
     assertEquals(a.getSite(), b.getSite().getBaseline());
     assertEquals(b.getSite(), a.getSite().getBaseline());
+
+    Value va = Value.pack(a);
+    assertEquals(b, Value.getBaseline(va).asAhatInstance());
   }
 
   @Test