summaryrefslogtreecommitdiffstats
path: root/nms-patches/EntitySlice.patch
diff options
context:
space:
mode:
authorThinkofdeath <thinkofdeath@spigotmc.org>2015-02-20 10:19:11 +0000
committerThinkofdeath <thinkofdeath@spigotmc.org>2015-02-20 10:19:11 +0000
commitee6d0fa9384fba4be2efe5ea2a0e06ba7df8df11 (patch)
tree9c6c6970c7c0496e895a93e9a2823d1d03ce47f8 /nms-patches/EntitySlice.patch
parent1d63ff0d9b6a3904d10e673c440a77b9c5424db3 (diff)
downloadcraftbukkit-ee6d0fa9384fba4be2efe5ea2a0e06ba7df8df11.tar
craftbukkit-ee6d0fa9384fba4be2efe5ea2a0e06ba7df8df11.tar.gz
craftbukkit-ee6d0fa9384fba4be2efe5ea2a0e06ba7df8df11.tar.lz
craftbukkit-ee6d0fa9384fba4be2efe5ea2a0e06ba7df8df11.tar.xz
craftbukkit-ee6d0fa9384fba4be2efe5ea2a0e06ba7df8df11.zip
SPIGOT-591: Optimize EntitySlice.iterator
Previously if the key 'this.c' was missing a new hashmap was created, this caused thousands to be created each tick
Diffstat (limited to 'nms-patches/EntitySlice.patch')
-rw-r--r--nms-patches/EntitySlice.patch22
1 files changed, 22 insertions, 0 deletions
diff --git a/nms-patches/EntitySlice.patch b/nms-patches/EntitySlice.patch
new file mode 100644
index 00000000..5e898280
--- /dev/null
+++ b/nms-patches/EntitySlice.patch
@@ -0,0 +1,22 @@
+--- ../work/decompile-8eb82bde/net/minecraft/server/EntitySlice.java 2015-02-20 10:18:42.025023871 +0000
++++ src/main/java/net/minecraft/server/EntitySlice.java 2015-02-20 10:18:42.057023871 +0000
+@@ -4,6 +4,7 @@
+ import com.google.common.collect.Multimap;
+ import com.google.common.collect.Sets;
+ import java.util.AbstractSet;
++import java.util.Collections;
+ import java.util.Iterator;
+ import java.util.Set;
+ import org.apache.commons.lang3.ClassUtils;
+@@ -89,6 +90,11 @@
+ }
+
+ public Iterator iterator() {
++ // CraftBukkit start
++ if (!this.a.containsKey(this.c)) {
++ return Collections.EMPTY_LIST.iterator();
++ }
++ // CraftBukkit end
+ Iterator iterator = this.a.get(this.c).iterator();
+
+ return new EntitySliceInnerClass2(this, iterator);