mirror of https://github.com/YatopiaMC/Yatopia.git
41 lines
2.3 KiB
Diff
41 lines
2.3 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Paul Sauve <paul@technove.co>
|
|
Date: Wed, 19 May 2021 20:36:24 -0500
|
|
Subject: [PATCH] Use raw iterator where possible
|
|
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/level/ChunkProviderServer.java b/src/main/java/net/minecraft/server/level/ChunkProviderServer.java
|
|
index 0718b80ac82a1cf00519c30c6d2ef78fe3914c71..e31766151450ffa44937feb728f6368e61acd2cd 100644
|
|
--- a/src/main/java/net/minecraft/server/level/ChunkProviderServer.java
|
|
+++ b/src/main/java/net/minecraft/server/level/ChunkProviderServer.java
|
|
@@ -1034,10 +1034,12 @@ public class ChunkProviderServer extends IChunkProvider {
|
|
// Paper - moved up
|
|
this.world.timings.chunkTicks.startTiming(); // Paper
|
|
// Tuinity start - optimise chunk tick iteration
|
|
- com.tuinity.tuinity.util.maplist.IteratorSafeOrderedReferenceSet.Iterator<Chunk> iterator = this.entityTickingChunks.iterator();
|
|
+ // Airplane start - use raw iterator
|
|
+ //com.tuinity.tuinity.util.maplist.IteratorSafeOrderedReferenceSet.Iterator<Chunk> iterator = this.entityTickingChunks.iterator();
|
|
+ int iterator = this.entityTickingChunks.createRawIterator();
|
|
try {
|
|
- while (iterator.hasNext()) {
|
|
- Chunk chunk = iterator.next();
|
|
+ while (iterator != -1) {
|
|
+ Chunk chunk = this.entityTickingChunks.rawGet(iterator);
|
|
PlayerChunk playerchunk = chunk.playerChunk;
|
|
if (playerchunk != null) { // make sure load event has been called along with the load logic we put there
|
|
// Tuinity end - optimise chunk tick iteration
|
|
@@ -1065,10 +1067,12 @@ public class ChunkProviderServer extends IChunkProvider {
|
|
}
|
|
}
|
|
}
|
|
+ iterator = this.entityTickingChunks.advanceRawIterator(iterator);
|
|
} // Tuinity start - optimise chunk tick iteration
|
|
} finally {
|
|
- iterator.finishedIterating();
|
|
+ this.entityTickingChunks.finishRawIterator();
|
|
}
|
|
+ // Airplane end
|
|
// Tuinity end - optimise chunk tick iteration
|
|
this.world.timings.chunkTicks.stopTiming(); // Paper
|
|
this.world.getMethodProfiler().enter("customSpawners");
|