diff options
Diffstat (limited to 'patches/server/0105-Optimise-BlockState-s-hashCode-equals.patch')
-rw-r--r-- | patches/server/0105-Optimise-BlockState-s-hashCode-equals.patch | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/patches/server/0105-Optimise-BlockState-s-hashCode-equals.patch b/patches/server/0105-Optimise-BlockState-s-hashCode-equals.patch new file mode 100644 index 0000000000..348097f8ce --- /dev/null +++ b/patches/server/0105-Optimise-BlockState-s-hashCode-equals.patch @@ -0,0 +1,65 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Alfie Cleveland <[email protected]> +Date: Fri, 19 Aug 2016 01:52:56 +0100 +Subject: [PATCH] Optimise BlockState's hashCode/equals + +These are singleton "single instance" objects. We can rely on +object identity checks safely. + +Use a simpler optimized hashcode + +diff --git a/src/main/java/net/minecraft/world/level/block/state/properties/BooleanProperty.java b/src/main/java/net/minecraft/world/level/block/state/properties/BooleanProperty.java +index ee2f1bff22fed14cda434173dc6286e4d4520822..b63116b333b6e06494091a82588acfb639bddb71 100644 +--- a/src/main/java/net/minecraft/world/level/block/state/properties/BooleanProperty.java ++++ b/src/main/java/net/minecraft/world/level/block/state/properties/BooleanProperty.java +@@ -30,8 +30,7 @@ public class BooleanProperty extends Property<Boolean> { + return value.toString(); + } + +- @Override +- public boolean equals(Object object) { ++ public boolean equals_unused(Object object) { // Paper - Perf: Optimize hashCode/equals + if (this == object) { + return true; + } else { +diff --git a/src/main/java/net/minecraft/world/level/block/state/properties/EnumProperty.java b/src/main/java/net/minecraft/world/level/block/state/properties/EnumProperty.java +index f4d9856420a6e7e857fc9b9cb6182a54fe341568..3097298fe356df98967cf4bdeaaede69dfe8a441 100644 +--- a/src/main/java/net/minecraft/world/level/block/state/properties/EnumProperty.java ++++ b/src/main/java/net/minecraft/world/level/block/state/properties/EnumProperty.java +@@ -44,8 +44,7 @@ public class EnumProperty<T extends Enum<T> & StringRepresentable> extends Prope + return value.getSerializedName(); + } + +- @Override +- public boolean equals(Object object) { ++ public boolean equals_unused(Object object) { // Paper - Perf: Optimize hashCode/equals + if (this == object) { + return true; + } else { +diff --git a/src/main/java/net/minecraft/world/level/block/state/properties/IntegerProperty.java b/src/main/java/net/minecraft/world/level/block/state/properties/IntegerProperty.java +index 3c590d400032d8266de63aae301fedbd83d37a1d..3a850321a4bcc68058483b5fd53e829c425a68af 100644 +--- a/src/main/java/net/minecraft/world/level/block/state/properties/IntegerProperty.java ++++ b/src/main/java/net/minecraft/world/level/block/state/properties/IntegerProperty.java +@@ -35,8 +35,7 @@ public class IntegerProperty extends Property<Integer> { + return this.values; + } + +- @Override +- public boolean equals(Object object) { ++ public boolean equals_unused(Object object) { // Paper - Perf: Optimize hashCode/equals + if (this == object) { + return true; + } else { +diff --git a/src/main/java/net/minecraft/world/level/block/state/properties/Property.java b/src/main/java/net/minecraft/world/level/block/state/properties/Property.java +index 7cbc5e6e75f389f47ef07045f9876cec192f14e4..9055f15af0cae55effa6942913a9d7edf3857e07 100644 +--- a/src/main/java/net/minecraft/world/level/block/state/properties/Property.java ++++ b/src/main/java/net/minecraft/world/level/block/state/properties/Property.java +@@ -70,7 +70,7 @@ public abstract class Property<T extends Comparable<T>> { + + @Override + public boolean equals(Object object) { +- return this == object || object instanceof Property<?> property && this.clazz.equals(property.clazz) && this.name.equals(property.name); ++ return this == object; // Paper - Perf: Optimize hashCode/equals + } + + @Override |