summaryrefslogtreecommitdiffstats
path: root/src/main/java/net/minecraft/server
diff options
context:
space:
mode:
authorTravis Watkins <amaranth@ubuntu.com>2012-08-17 12:55:33 -0500
committerTravis Watkins <amaranth@ubuntu.com>2012-08-19 09:50:57 -0500
commit858d36efc9045d952af21ca4c33ad2756a05f8ae (patch)
tree86bca5dcb13fbb61d73a513a6024461e1422a466 /src/main/java/net/minecraft/server
parent6d777ade166a5543a293c9353d7e6910b4a52b17 (diff)
downloadcraftbukkit-858d36efc9045d952af21ca4c33ad2756a05f8ae.tar
craftbukkit-858d36efc9045d952af21ca4c33ad2756a05f8ae.tar.gz
craftbukkit-858d36efc9045d952af21ca4c33ad2756a05f8ae.tar.lz
craftbukkit-858d36efc9045d952af21ca4c33ad2756a05f8ae.tar.xz
craftbukkit-858d36efc9045d952af21ca4c33ad2756a05f8ae.zip
Add iterator cache to UnsafeList and use it in hotspots
Adds a specialized iterator for the list and a pool of iterators to avoid object churn. Also optimizes the clear() method to reduce object creation.
Diffstat (limited to 'src/main/java/net/minecraft/server')
-rw-r--r--src/main/java/net/minecraft/server/Chunk.java2
-rw-r--r--src/main/java/net/minecraft/server/PathfinderGoalSelector.java10
-rw-r--r--src/main/java/net/minecraft/server/World.java5
3 files changed, 11 insertions, 6 deletions
diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java
index 9fedd372..fb9bf205 100644
--- a/src/main/java/net/minecraft/server/Chunk.java
+++ b/src/main/java/net/minecraft/server/Chunk.java
@@ -57,7 +57,7 @@ public class Chunk {
this.heightMap = new int[256];
for (int k = 0; k < this.entitySlices.length; ++k) {
- this.entitySlices[k] = new ArrayList();
+ this.entitySlices[k] = new org.bukkit.craftbukkit.util.UnsafeList(); // CraftBukkit - ArrayList -> UnsafeList
}
Arrays.fill(this.b, -999);
diff --git a/src/main/java/net/minecraft/server/PathfinderGoalSelector.java b/src/main/java/net/minecraft/server/PathfinderGoalSelector.java
index dc16a625..9ef8ec76 100644
--- a/src/main/java/net/minecraft/server/PathfinderGoalSelector.java
+++ b/src/main/java/net/minecraft/server/PathfinderGoalSelector.java
@@ -4,10 +4,14 @@ import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
+import org.bukkit.craftbukkit.util.UnsafeList; // CraftBukkit
+
public class PathfinderGoalSelector {
- private List a = new ArrayList();
- private List b = new ArrayList();
+ // CraftBukkit start - ArrayList -> UnsafeList
+ private List a = new UnsafeList();
+ private List b = new UnsafeList();
+ // CraftBukkit end
private final MethodProfiler c;
private int d = 0;
private int e = 3;
@@ -21,7 +25,7 @@ public class PathfinderGoalSelector {
}
public void a() {
- ArrayList arraylist = new ArrayList();
+ UnsafeList arraylist = new UnsafeList(); // CraftBukkit - ArrayList -> UnsafeList
Iterator iterator;
PathfinderGoalSelectorItem pathfindergoalselectoritem;
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index d552df0f..56c5df05 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -10,6 +10,7 @@ import java.util.concurrent.Callable;
// CraftBukkit start
import org.bukkit.Bukkit;
import org.bukkit.craftbukkit.util.LongHashset;
+import org.bukkit.craftbukkit.util.UnsafeList;
import org.bukkit.generator.ChunkGenerator;
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.craftbukkit.CraftWorld;
@@ -54,7 +55,7 @@ public abstract class World implements IBlockAccess {
public final VillageCollection villages = new VillageCollection(this);
protected final VillageSiege siegeManager = new VillageSiege(this);
public final MethodProfiler methodProfiler;
- private ArrayList d = new ArrayList();
+ private UnsafeList d = new UnsafeList(); // CraftBukkit - ArrayList -> UnsafeList
private boolean L;
// CraftBukkit start - public, longhashset
public boolean allowMonsters = true;
@@ -112,7 +113,7 @@ public abstract class World implements IBlockAccess {
this.M = this.random.nextInt(12000);
this.J = new int['\u8000'];
- this.N = new ArrayList();
+ this.N = new UnsafeList(); // CraftBukkit - ArrayList -> UnsafeList
this.isStatic = false;
this.dataManager = idatamanager;
this.methodProfiler = methodprofiler;