Avoid garbage from boxing of ints in DirtyBuildingState.isReady.
PiperOrigin-RevId: 248128144
diff --git a/src/main/java/com/google/devtools/build/skyframe/DirtyBuildingState.java b/src/main/java/com/google/devtools/build/skyframe/DirtyBuildingState.java
index 8b95580..42c80c6 100644
--- a/src/main/java/com/google/devtools/build/skyframe/DirtyBuildingState.java
+++ b/src/main/java/com/google/devtools/build/skyframe/DirtyBuildingState.java
@@ -318,12 +318,11 @@
/** Returns whether all known children of this node have signaled that they are done. */
boolean isReady(int numDirectDeps) {
- Preconditions.checkState(
- signaledDeps <= numDirectDeps + externalDeps,
- "%s %s %s",
- numDirectDeps,
- externalDeps,
- this);
+ // Avoids calling Preconditions.checkState because it showed up in garbage profiles due to
+ // boxing of the int format args.
+ if (signaledDeps > numDirectDeps + externalDeps) {
+ throw new IllegalStateException(String.format("%s %s %s", numDirectDeps, externalDeps, this));
+ }
return signaledDeps == numDirectDeps + externalDeps;
}