From 395940c69dcb657fd602f3d319fb50dac7ce52f7 Mon Sep 17 00:00:00 2001 From: michajlo Date: Thu, 30 Mar 2017 17:53:17 +0000 Subject: Suffix fingerprint of iterable with length This should be morally equivalent to prefixing, with the benefit that we won't prematurely expand NestedSets (not cheap) to get the length. PiperOrigin-RevId: 151721361 --- .../java/com/google/devtools/build/lib/util/Fingerprint.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/main/java/com/google/devtools/build/lib/util/Fingerprint.java b/src/main/java/com/google/devtools/build/lib/util/Fingerprint.java index c75104ee7f..c2119eeccb 100644 --- a/src/main/java/com/google/devtools/build/lib/util/Fingerprint.java +++ b/src/main/java/com/google/devtools/build/lib/util/Fingerprint.java @@ -14,7 +14,6 @@ package com.google.devtools.build.lib.util; -import com.google.common.collect.Iterables; import com.google.common.io.ByteStreams; import com.google.devtools.build.lib.vfs.Path; import com.google.devtools.build.lib.vfs.PathFragment; @@ -191,10 +190,12 @@ public final class Fingerprint { * different from adding them each individually. */ public Fingerprint addStrings(Iterable inputs) { - addInt(Iterables.size(inputs)); + int count = 0; for (String input : inputs) { addString(input); + count++; } + addInt(count); return this; } @@ -217,10 +218,12 @@ public final class Fingerprint { * @param inputs the paths with which to update the digest */ public Fingerprint addPaths(Iterable inputs) { - addInt(Iterables.size(inputs)); + int count = 0; for (PathFragment path : inputs) { addPath(path); + count++; } + addInt(count); return this; } -- cgit v1.2.3