From 685c5cc587bb4752fe93c179f0c7133bea40f927 Mon Sep 17 00:00:00 2001 From: mcrcortex <18544518+MCRcortex@users.noreply.github.com> Date: Sun, 21 Jan 2024 21:51:12 +1000 Subject: [PATCH] Fix for unlucky memory leak --- .../cortex/zenith/client/core/rendering/GeometryManager.java | 3 +++ .../core/rendering/building/RenderGenerationService.java | 5 ++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/main/java/me/cortex/zenith/client/core/rendering/GeometryManager.java b/src/main/java/me/cortex/zenith/client/core/rendering/GeometryManager.java index 3967e3be..af55e580 100644 --- a/src/main/java/me/cortex/zenith/client/core/rendering/GeometryManager.java +++ b/src/main/java/me/cortex/zenith/client/core/rendering/GeometryManager.java @@ -145,6 +145,9 @@ public class GeometryManager { } public void free() { + while (!this.buildResults.isEmpty()) { + this.buildResults.pop().free(); + } this.sectionMetaBuffer.free(); this.geometryBuffer.free(); } diff --git a/src/main/java/me/cortex/zenith/client/core/rendering/building/RenderGenerationService.java b/src/main/java/me/cortex/zenith/client/core/rendering/building/RenderGenerationService.java index aa5d051e..a090bc66 100644 --- a/src/main/java/me/cortex/zenith/client/core/rendering/building/RenderGenerationService.java +++ b/src/main/java/me/cortex/zenith/client/core/rendering/building/RenderGenerationService.java @@ -57,6 +57,8 @@ public class RenderGenerationService { int buildFlags = task.flagSupplier.applyAsInt(section); if (buildFlags != 0) { var mesh = factory.generateMesh(section, buildFlags); + section.release(); + this.resultConsumer.accept(mesh.clone()); if (false) { @@ -67,8 +69,9 @@ public class RenderGenerationService { } else { mesh.free(); } + } else { + section.release(); } - section.release(); } }