Yatopia/patches/Airplane/patches/server/0034-Use-raw-iterator-where...

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");