From 0ea27b676e8ecfbd06edbdbf163f495a649a9696 Mon Sep 17 00:00:00 2001 From: James Seibel Date: Tue, 17 Jun 2025 07:15:15 -0500 Subject: [PATCH] Optimize ClientLevelWrapper.GetWrapper() Should speed up initial LOD loading a bit --- .../wrappers/world/ClientLevelWrapper.java | 20 +++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/common/src/main/java/com/seibel/distanthorizons/common/wrappers/world/ClientLevelWrapper.java b/common/src/main/java/com/seibel/distanthorizons/common/wrappers/world/ClientLevelWrapper.java index 5bc109cce..ec4fa2cfe 100644 --- a/common/src/main/java/com/seibel/distanthorizons/common/wrappers/world/ClientLevelWrapper.java +++ b/common/src/main/java/com/seibel/distanthorizons/common/wrappers/world/ClientLevelWrapper.java @@ -110,14 +110,26 @@ public class ClientLevelWrapper implements IClientLevelWrapper } } - return LEVEL_WRAPPER_REF_BY_CLIENT_LEVEL.compute(level, (newLevel, levelRef) -> + + WeakReference levelRef = LEVEL_WRAPPER_REF_BY_CLIENT_LEVEL.get(level); + if (levelRef != null) { - if (levelRef != null) + ClientLevelWrapper levelWrapper = levelRef.get(); + if (levelWrapper != null) { - ClientLevelWrapper oldLevelWrapper = levelRef.get(); + return levelWrapper; + } + } + + + return LEVEL_WRAPPER_REF_BY_CLIENT_LEVEL.compute(level, (newLevel, newLevelRef) -> + { + if (newLevelRef != null) + { + ClientLevelWrapper oldLevelWrapper = newLevelRef.get(); if (oldLevelWrapper != null) { - return levelRef; + return newLevelRef; } }