Delete StringCanonicalizer.
This is a no-op change to inline the method calls. https://github.com/bazelbuild/bazel/commit/76f5a48fbd037496e12a4ea4af3a7333b7de14f5 replaced the implementation to `String#intern`.
PiperOrigin-RevId: 627998754
Change-Id: Ibaf09017c9f75d03572ed35c9f34e0b410bb6a13
diff --git a/src/main/java/com/google/devtools/build/lib/actions/ActionInputMap.java b/src/main/java/com/google/devtools/build/lib/actions/ActionInputMap.java
index 209a089..04b54a8 100644
--- a/src/main/java/com/google/devtools/build/lib/actions/ActionInputMap.java
+++ b/src/main/java/com/google/devtools/build/lib/actions/ActionInputMap.java
@@ -27,7 +27,6 @@
import com.google.devtools.build.lib.bugreport.BugReporter;
import com.google.devtools.build.lib.collect.compacthashmap.CompactHashMap;
import com.google.devtools.build.lib.skyframe.TreeArtifactValue;
-import com.google.devtools.build.lib.util.StringCanonicalizer;
import com.google.devtools.build.lib.vfs.PathFragment;
import java.util.ArrayList;
import java.util.Arrays;
@@ -97,7 +96,7 @@
private void put(String name, Object val) {
// Input path segments are commonly shared among actions, so intern before storing.
- name = StringCanonicalizer.intern(name);
+ name = name.intern();
switch (subFolders.size()) {
case 0 -> subFolders = ImmutableMap.of(name, val);
diff --git a/src/main/java/com/google/devtools/build/lib/actions/cache/PersistentStringIndexer.java b/src/main/java/com/google/devtools/build/lib/actions/cache/PersistentStringIndexer.java
index c3204d9..1b98e52 100644
--- a/src/main/java/com/google/devtools/build/lib/actions/cache/PersistentStringIndexer.java
+++ b/src/main/java/com/google/devtools/build/lib/actions/cache/PersistentStringIndexer.java
@@ -18,7 +18,6 @@
import com.google.devtools.build.lib.clock.Clock;
import com.google.devtools.build.lib.concurrent.ThreadSafety.ConditionallyThreadSafe;
import com.google.devtools.build.lib.util.PersistentMap;
-import com.google.devtools.build.lib.util.StringCanonicalizer;
import com.google.devtools.build.lib.util.StringIndexer;
import com.google.devtools.build.lib.vfs.FileSystemUtils;
import com.google.devtools.build.lib.vfs.Path;
@@ -88,7 +87,7 @@
if (i != null) {
return i;
}
- s = StringCanonicalizer.intern(s);
+ s = s.intern();
synchronized (this) {
i = stringToInt.size();
Integer existing = stringToInt.putIfAbsent(s, i);
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/BlazeDirectories.java b/src/main/java/com/google/devtools/build/lib/analysis/BlazeDirectories.java
index c7c0535..989e64b 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/BlazeDirectories.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/BlazeDirectories.java
@@ -21,7 +21,6 @@
import com.google.devtools.build.lib.actions.ArtifactRoot;
import com.google.devtools.build.lib.actions.ArtifactRoot.RootType;
import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
-import com.google.devtools.build.lib.util.StringCanonicalizer;
import com.google.devtools.build.lib.vfs.Path;
import javax.annotation.Nullable;
@@ -251,7 +250,7 @@
* <p>For example: {@code "bazel-out"}.
*/
public static String getRelativeOutputPath(String productName) {
- return StringCanonicalizer.intern(productName + "-out");
+ return (productName + "-out").intern();
}
public String getProductName() {
diff --git a/src/main/java/com/google/devtools/build/lib/cmdline/RepositoryName.java b/src/main/java/com/google/devtools/build/lib/cmdline/RepositoryName.java
index b15e953..3747008 100644
--- a/src/main/java/com/google/devtools/build/lib/cmdline/RepositoryName.java
+++ b/src/main/java/com/google/devtools/build/lib/cmdline/RepositoryName.java
@@ -22,7 +22,6 @@
import com.google.common.base.Preconditions;
import com.google.devtools.build.lib.skyframe.serialization.autocodec.SerializationConstant;
import com.google.devtools.build.lib.util.Pair;
-import com.google.devtools.build.lib.util.StringCanonicalizer;
import com.google.devtools.build.lib.util.StringUtilities;
import com.google.devtools.build.lib.vfs.OsPathPolicy;
import com.google.devtools.build.lib.vfs.PathFragment;
@@ -61,7 +60,7 @@
.build(
name -> {
validate(name);
- return new RepositoryName(StringCanonicalizer.intern(name));
+ return new RepositoryName(name.intern());
});
/**
diff --git a/src/main/java/com/google/devtools/build/lib/packages/CallStack.java b/src/main/java/com/google/devtools/build/lib/packages/CallStack.java
index e2ae805..64984ac 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/CallStack.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/CallStack.java
@@ -18,7 +18,6 @@
import com.google.devtools.build.lib.skyframe.serialization.VisibleForSerialization;
import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
import com.google.devtools.build.lib.util.HashCodes;
-import com.google.devtools.build.lib.util.StringCanonicalizer;
import java.util.List;
import java.util.Objects;
import javax.annotation.Nullable;
@@ -65,8 +64,7 @@
String name, String file, int line, int col, @Nullable Node next) {
// Use common canonicalizer based on assertion that most strings (function names, locations)
// were already shared across packages to some degree.
- return new Node(
- StringCanonicalizer.intern(name), StringCanonicalizer.intern(file), line, col, next);
+ return new Node(name.intern(), file.intern(), line, col, next);
}
private Node(String name, Location location, @Nullable Node next) {
diff --git a/src/main/java/com/google/devtools/build/lib/packages/Type.java b/src/main/java/com/google/devtools/build/lib/packages/Type.java
index 7ccb3e9..8663180 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/Type.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/Type.java
@@ -24,7 +24,6 @@
import com.google.devtools.build.lib.collect.nestedset.Depset;
import com.google.devtools.build.lib.skyframe.serialization.autocodec.SerializationConstant;
import com.google.devtools.build.lib.util.LoggingUtil;
-import com.google.devtools.build.lib.util.StringCanonicalizer;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.LinkedHashSet;
@@ -255,10 +254,7 @@
/** The type of a Starlark integer in the signed 32-bit range. */
@SerializationConstant public static final Type<StarlarkInt> INTEGER = new IntegerType();
- /**
- * The type of a string which interns the string instance in {@link StringCanonicalizer}'s weak
- * interner.
- */
+ /** The type of a string which interns the instance with String#intern. */
@SerializationConstant
public static final Type<String> STRING = new StringType(/* internString= */ true);
@@ -266,9 +262,8 @@
* The type of a string which does not intern the string instance.
*
* <p>When there is only one string instance created in blaze, interning it introduces memory
- * overhead of an additional map entry in weak interner's map. So for attribute whose string value
- * tends to not duplicate (for example rule name), it is preferable not to intern such string
- * values.
+ * overhead. So for attribute whose string value tends to not duplicate (for example rule name),
+ * it is preferable not to intern such string values.
*/
@SerializationConstant
public static final Type<String> STRING_NO_INTERN = new StringType(/* internString= */ false);
@@ -479,7 +474,7 @@
if (!(x instanceof String)) {
throw new ConversionException(this, x, what);
}
- return internString ? StringCanonicalizer.intern((String) x) : (String) x;
+ return internString ? ((String) x).intern() : (String) x;
}
@Override
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/GlobDescriptor.java b/src/main/java/com/google/devtools/build/lib/skyframe/GlobDescriptor.java
index 1803cdb..f414de7 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/GlobDescriptor.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/GlobDescriptor.java
@@ -19,7 +19,6 @@
import com.google.devtools.build.lib.packages.Globber;
import com.google.devtools.build.lib.skyframe.serialization.VisibleForSerialization;
import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
-import com.google.devtools.build.lib.util.StringCanonicalizer;
import com.google.devtools.build.lib.vfs.PathFragment;
import com.google.devtools.build.lib.vfs.Root;
import com.google.devtools.build.skyframe.SkyFunctionName;
@@ -79,7 +78,7 @@
this.packageId = Preconditions.checkNotNull(packageId);
this.packageRoot = Preconditions.checkNotNull(packageRoot);
this.subdir = Preconditions.checkNotNull(subdir);
- this.pattern = Preconditions.checkNotNull(StringCanonicalizer.intern(pattern));
+ this.pattern = Preconditions.checkNotNull(pattern.intern());
this.globberOperation = globberOperation;
}
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/TransitiveTraversalValue.java b/src/main/java/com/google/devtools/build/lib/skyframe/TransitiveTraversalValue.java
index 166da7c..73b533d 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/TransitiveTraversalValue.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/TransitiveTraversalValue.java
@@ -21,7 +21,6 @@
import com.google.devtools.build.lib.packages.AdvertisedProviderSet;
import com.google.devtools.build.lib.packages.Rule;
import com.google.devtools.build.lib.packages.Target;
-import com.google.devtools.build.lib.util.StringCanonicalizer;
import com.google.devtools.build.skyframe.SkyKey;
import com.google.devtools.build.skyframe.SkyValue;
import java.util.Objects;
@@ -184,7 +183,7 @@
private TransitiveTraversalValueWithError(String errorMessage, String kind) {
super(kind);
- this.errorMessage = StringCanonicalizer.intern(Preconditions.checkNotNull(errorMessage));
+ this.errorMessage = Preconditions.checkNotNull(errorMessage).intern();
}
@Override
diff --git a/src/main/java/com/google/devtools/build/lib/util/BUILD b/src/main/java/com/google/devtools/build/lib/util/BUILD
index e39f8a7..9436ed6 100644
--- a/src/main/java/com/google/devtools/build/lib/util/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/util/BUILD
@@ -312,14 +312,10 @@
java_library(
name = "string",
srcs = [
- "StringCanonicalizer.java",
"StringUtil.java",
"StringUtilities.java",
],
- deps = [
- "//src/main/java/com/google/devtools/build/lib/concurrent",
- "//third_party:guava",
- ],
+ deps = ["//third_party:guava"],
)
java_library(
diff --git a/src/main/java/com/google/devtools/build/lib/util/StringCanonicalizer.java b/src/main/java/com/google/devtools/build/lib/util/StringCanonicalizer.java
deleted file mode 100644
index b294c6d..0000000
--- a/src/main/java/com/google/devtools/build/lib/util/StringCanonicalizer.java
+++ /dev/null
@@ -1,29 +0,0 @@
-// Copyright 2014 The Bazel Authors. All rights reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-package com.google.devtools.build.lib.util;
-
-/**
- * Just an indirection to {@code String#intern}.
- *
- * <p>TODO: b/335098503 - turn this down if String#intern sticks.
- */
-public final class StringCanonicalizer {
-
- private StringCanonicalizer() {}
-
- /** Interns a String. */
- public static String intern(String arg) {
- return arg.intern();
- }
-}
diff --git a/src/test/java/com/google/devtools/build/lib/util/StringCanonicalizerTest.java b/src/test/java/com/google/devtools/build/lib/util/StringCanonicalizerTest.java
deleted file mode 100644
index 6e4d2a6..0000000
--- a/src/test/java/com/google/devtools/build/lib/util/StringCanonicalizerTest.java
+++ /dev/null
@@ -1,41 +0,0 @@
-// Copyright 2014 The Bazel Authors. All rights reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-package com.google.devtools.build.lib.util;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.junit.runners.JUnit4;
-
-/**
- * Tests for String canonicalizer.
- */
-@RunWith(JUnit4.class)
-public class StringCanonicalizerTest {
-
- @Test
- public void twoDifferentStringsAreDifferent() {
- String stringA = StringCanonicalizer.intern("A");
- String stringB = StringCanonicalizer.intern("B");
- assertThat(stringA).isNotEqualTo(stringB);
- }
-
- @Test
- public void twoSameStringsAreCanonicalized() {
- String stringA1 = StringCanonicalizer.intern(new String("A"));
- String stringA2 = StringCanonicalizer.intern(new String("A"));
- assertThat(stringA2).isSameInstanceAs(stringA1);
- }
-}