mirror of
https://github.com/PaperMC/Paper.git
synced 2024-12-01 20:50:41 +01:00
0ba94906ad
Pathfinder objects are storing references to ChunkCache's, and never cleaning up. These ChunkCache's then leak other entity objects. Those entity objects then have leaks to their own chunk cache. A recursive problem.... Clean up the ChunkCache reference after it is done being used.
28 lines
1.1 KiB
Diff
28 lines
1.1 KiB
Diff
From a4e295c985a50926d5e66a184fc764f4aa301d6a Mon Sep 17 00:00:00 2001
|
|
From: Aikar <aikar@aikar.co>
|
|
Date: Thu, 31 Mar 2016 19:06:47 -0400
|
|
Subject: [PATCH] Fix Massive Memory Leak
|
|
|
|
Pathfinder objects are storing references to ChunkCache's, and never cleaning up.
|
|
|
|
These ChunkCache's then leak other entity objects. Those entity objects then have leaks to their
|
|
own chunk cache. A recursive problem....
|
|
|
|
Clean up the ChunkCache reference after it is done being used.
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/PathfinderAbstract.java b/src/main/java/net/minecraft/server/PathfinderAbstract.java
|
|
index d579577..40e5b4d 100644
|
|
--- a/src/main/java/net/minecraft/server/PathfinderAbstract.java
|
|
+++ b/src/main/java/net/minecraft/server/PathfinderAbstract.java
|
|
@@ -23,7 +23,7 @@ public abstract class PathfinderAbstract {
|
|
this.f = MathHelper.d(entityinsentient.width + 1.0F);
|
|
}
|
|
|
|
- public void a() {}
|
|
+ public void a() {this.a = (IBlockAccess) null;} // Paper - Fix massive memory leak. Intentionally casting to ensure compile error if obfuscation changes
|
|
|
|
protected PathPoint a(int i, int j, int k) {
|
|
int l = PathPoint.b(i, j, k);
|
|
--
|
|
2.8.0
|
|
|