FilesetEntryValue now overrides .equals and .hashCode.
This means Skyframe's change pruning can work more efficiently. Without the
overridden implementations we'd compare equal FEVs as inequal and unnecessarily
re-evaluate SkyKeys that we could have verified clean.
--
MOS_MIGRATED_REVID=99397188
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/FilesetEntryValue.java b/src/main/java/com/google/devtools/build/lib/skyframe/FilesetEntryValue.java
index e7b6580..4753735 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/FilesetEntryValue.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/FilesetEntryValue.java
@@ -46,4 +46,20 @@
public static SkyKey key(FilesetTraversalParams params) {
return new SkyKey(SkyFunctions.FILESET_ENTRY, params);
}
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj) {
+ return true;
+ }
+ if (!(obj instanceof FilesetEntryValue)) {
+ return false;
+ }
+ return symlinks.equals(((FilesetEntryValue) obj).symlinks);
+ }
+
+ @Override
+ public int hashCode() {
+ return symlinks.hashCode();
+ }
}