SPIGOT-6973: Setting biome calls String#intern for every biome placed

By: md_5 <git@md-5.net>
This commit is contained in:
CraftBukkit/Spigot 2022-04-03 09:20:16 +10:00
parent 9cff7d3ca0
commit 8ea55f306a

View file

@ -0,0 +1,29 @@
--- a/net/minecraft/resources/ResourceKey.java
+++ b/net/minecraft/resources/ResourceKey.java
@@ -10,7 +10,7 @@
public class ResourceKey<T> {
- private static final Map<String, ResourceKey<?>> VALUES = Collections.synchronizedMap(Maps.newIdentityHashMap());
+ private static final Map<String, ResourceKey<?>> VALUES = Collections.synchronizedMap(Maps.newHashMap()); // CraftBukkit - SPIGOT-6973: remove costly intern
private final MinecraftKey registryName;
private final MinecraftKey location;
@@ -29,7 +29,7 @@
}
private static <T> ResourceKey<T> create(MinecraftKey minecraftkey, MinecraftKey minecraftkey1) {
- String s = (minecraftkey + ":" + minecraftkey1).intern();
+ String s = (minecraftkey + ":" + minecraftkey1); // CraftBukkit - SPIGOT-6973: remove costly intern
return (ResourceKey) ResourceKey.VALUES.computeIfAbsent(s, (s1) -> {
return new ResourceKey<>(minecraftkey, minecraftkey1);
@@ -50,7 +50,7 @@
}
public <E> Optional<ResourceKey<E>> cast(ResourceKey<? extends IRegistry<E>> resourcekey) {
- return this.isFor(resourcekey) ? Optional.of(this) : Optional.empty();
+ return this.isFor(resourcekey) ? (Optional) Optional.of(this) : Optional.empty(); // CraftBukkit - decompile error
}
public MinecraftKey location() {