diff options
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/skyframe/CollectTargetsInPackageValue.java | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/CollectTargetsInPackageValue.java b/src/main/java/com/google/devtools/build/lib/skyframe/CollectTargetsInPackageValue.java index 19c0c1dbf8..173896afae 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/CollectTargetsInPackageValue.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/CollectTargetsInPackageValue.java @@ -14,7 +14,9 @@ package com.google.devtools.build.lib.skyframe; import com.google.auto.value.AutoValue; +import com.google.common.collect.Interner; import com.google.devtools.build.lib.cmdline.PackageIdentifier; +import com.google.devtools.build.lib.concurrent.BlazeInterners; import com.google.devtools.build.lib.pkgcache.FilteringPolicy; import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec; import com.google.devtools.build.skyframe.SkyFunctionName; @@ -41,12 +43,16 @@ public class CollectTargetsInPackageValue implements SkyValue { @AutoValue @AutoCodec public abstract static class CollectTargetsInPackageKey implements SkyKey { + private static final Interner<CollectTargetsInPackageKey> interner = + BlazeInterners.newWeakInterner(); + @AutoCodec.VisibleForSerialization @AutoCodec.Instantiator static CollectTargetsInPackageKey create( PackageIdentifier packageId, FilteringPolicy filteringPolicy) { - return new AutoValue_CollectTargetsInPackageValue_CollectTargetsInPackageKey( - packageId, filteringPolicy); + return interner.intern( + new AutoValue_CollectTargetsInPackageValue_CollectTargetsInPackageKey( + packageId, filteringPolicy)); } public abstract PackageIdentifier getPackageId(); |