From 9fe5dcc16e49baa605e84b10cd23a94d29d378b1 Mon Sep 17 00:00:00 2001 From: James Seibel Date: Fri, 22 May 2026 14:37:45 -0500 Subject: [PATCH] minor GC optimization --- .../DependencyInjection/DependencyInjector.java | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/api/src/main/java/com/seibel/distanthorizons/coreapi/DependencyInjection/DependencyInjector.java b/api/src/main/java/com/seibel/distanthorizons/coreapi/DependencyInjection/DependencyInjector.java index 8a286c592..a6a3bea2b 100644 --- a/api/src/main/java/com/seibel/distanthorizons/coreapi/DependencyInjection/DependencyInjector.java +++ b/api/src/main/java/com/seibel/distanthorizons/coreapi/DependencyInjection/DependencyInjector.java @@ -35,6 +35,18 @@ import java.util.Map; */ public class DependencyInjector implements IDependencyInjector // Note to self: Don't try adding a generic type to IDhApiEvent, the constructor won't accept it { + /** + * empty list is to reduce GC pressure slightly in the common path + * that {@link DependencyInjector#getInternalLogic(Class, boolean)} is called + * when nothing has been bound. + */ + private static final ArrayList EMPTY_GET_ALL_LIST = new ArrayList<>(); + static + { + EMPTY_GET_ALL_LIST.add(null); + } + + protected final HashMap, ArrayList> dependencies = new HashMap<>(); /** Internal class reference to BindableType since we can't get it any other way. */ @@ -246,9 +258,7 @@ public class DependencyInjector implements IDepe // return an empty list to prevent null pointers - ArrayList emptyList = new ArrayList(); - emptyList.add(null); - return emptyList; + return (ArrayList)EMPTY_GET_ALL_LIST; } //endregion