optimize removeAll in ResourceManagerHelperImpl.sort ()

This commit is contained in:
asie 2019-08-08 00:02:25 +01:00 committed by modmuss50
parent eff46b3d8e
commit 232e294c2c
2 changed files with 11 additions and 3 deletions
fabric-resource-loader-v0
build.gradle
src/main/java/net/fabricmc/fabric/impl/resources

View file

@ -1,2 +1,2 @@
archivesBaseName = "fabric-resource-loader-v0"
version = getSubprojectVersion(project, "0.1.1")
version = getSubprojectVersion(project, "0.1.2")

View file

@ -31,7 +31,8 @@ public class ResourceManagerHelperImpl implements ResourceManagerHelper {
private static final Map<ResourceType, ResourceManagerHelperImpl> registryMap = new HashMap<>();
private static final Logger LOGGER = LogManager.getLogger();
private final List<IdentifiableResourceReloadListener> addedListeners = new ArrayList<>();
private final Set<Identifier> addedListenerIds = new HashSet<>();
private final Set<IdentifiableResourceReloadListener> addedListeners = new LinkedHashSet<>();
public static ResourceManagerHelper get(ResourceType type) {
return registryMap.computeIfAbsent(type, (t) -> new ResourceManagerHelperImpl());
@ -83,6 +84,13 @@ public class ResourceManagerHelperImpl implements ResourceManagerHelper {
@Override
public void registerReloadListener(IdentifiableResourceReloadListener listener) {
addedListeners.add(listener);
if (!addedListenerIds.add(listener.getFabricId())) {
LOGGER.warn("Tried to register resource reload listener " + listener.getFabricId() + " twice!");
return;
}
if (!addedListeners.add(listener)) {
throw new RuntimeException("Listener with previously unknown ID " + listener.getFabricId() + " already in listener set!");
}
}
}