diff options
Diffstat (limited to 'src/main/java/com/google/devtools/build/skyframe/ReverseDepsUtil.java')
-rw-r--r-- | src/main/java/com/google/devtools/build/skyframe/ReverseDepsUtil.java | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/src/main/java/com/google/devtools/build/skyframe/ReverseDepsUtil.java b/src/main/java/com/google/devtools/build/skyframe/ReverseDepsUtil.java index 26f1136af9..807aa8c440 100644 --- a/src/main/java/com/google/devtools/build/skyframe/ReverseDepsUtil.java +++ b/src/main/java/com/google/devtools/build/skyframe/ReverseDepsUtil.java @@ -106,23 +106,29 @@ public abstract class ReverseDepsUtil<T> { } } + boolean reverseDepsIsEmpty(T container) { + return !isSingleReverseDep(container) + && ((List<SkyKey>) getReverseDepsObject(container)).isEmpty(); + } + /** * See {@code addReverseDeps} method. */ void removeReverseDep(T container, SkyKey reverseDep) { if (isSingleReverseDep(container)) { // This removal is cheap so let's do it and not keep it in reverseDepsToRemove. - // !equals should only happen in case of catastrophe. - if (getReverseDepsObject(container).equals(reverseDep)) { + Preconditions.checkState( + getReverseDepsObject(container).equals(reverseDep), + "toRemove: %s container: %s", + reverseDep, + container); overwriteReverseDepsList(container, ImmutableList.<SkyKey>of()); - } return; } @SuppressWarnings("unchecked") List<SkyKey> reverseDepsAsList = (List<SkyKey>) getReverseDepsObject(container); - if (reverseDepsAsList.isEmpty()) { - return; - } + Preconditions.checkState( + !reverseDepsAsList.isEmpty(), "toRemove: %s container: %s", reverseDep, container); List<SkyKey> reverseDepsToRemove = getReverseDepsToRemove(container); if (reverseDepsToRemove == null) { reverseDepsToRemove = Lists.newArrayListWithExpectedSize(1); |