aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib
diff options
context:
space:
mode:
authorGravatar Eric Fellheimer <felly@google.com>2016-06-27 17:17:23 +0000
committerGravatar Dmitry Lomov <dslomov@google.com>2016-06-27 20:06:00 +0000
commit9c5b0700b033e70122c4bd9a2cb52f0bef05e2dc (patch)
treee5a1658cb78bf3a01c1803b531adb9decb961764 /src/main/java/com/google/devtools/build/lib
parent805c8b2b667c77ad04d1e2a917e1fe2c00551170 (diff)
Short-circuit visitation of empty nested sets, reinstating the spirit of commit 7c991c333999f3027d31da6af700f575924066cd.
-- MOS_MIGRATED_REVID=125969403
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib')
-rw-r--r--src/main/java/com/google/devtools/build/lib/collect/nestedset/NestedSetVisitor.java6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/collect/nestedset/NestedSetVisitor.java b/src/main/java/com/google/devtools/build/lib/collect/nestedset/NestedSetVisitor.java
index 705653f063..686991cfab 100644
--- a/src/main/java/com/google/devtools/build/lib/collect/nestedset/NestedSetVisitor.java
+++ b/src/main/java/com/google/devtools/build/lib/collect/nestedset/NestedSetVisitor.java
@@ -58,7 +58,11 @@ public final class NestedSetVisitor<E> {
*/
public void visit(NestedSet<E> nestedSet) {
Preconditions.checkArgument(nestedSet.getOrder() == Order.STABLE_ORDER);
- visitRaw(nestedSet.rawChildren());
+ // We can short-circuit empty nested set visitation here, avoiding load on the shared map
+ // VisitedState#seenNodes.
+ if (!nestedSet.isEmpty()) {
+ visitRaw(nestedSet.rawChildren());
+ }
}
@SuppressWarnings("unchecked")