Skip to content

Commit 2e6c710

Browse files
committed
Avoid allocating lambdas in ListenerListInst#unregister
Also avoid repeatedly calling forceRebuild() when not necessary
1 parent 4d302ff commit 2e6c710

File tree

1 file changed

+6
-4
lines changed

1 file changed

+6
-4
lines changed

src/main/java/net/minecraftforge/eventbus/ListenerList.java

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -218,10 +218,12 @@ public void register(EventPriority priority, IEventListener listener) {
218218

219219
public void unregister(IEventListener listener) {
220220
writeLock.acquireUninterruptibly();
221-
Arrays.stream(priorities)
222-
.filter(Objects::nonNull)
223-
.filter(list -> list.remove(listener))
224-
.forEach(list -> this.forceRebuild());
221+
boolean needsRebuild = false;
222+
for (var list : priorities) {
223+
if (list == null) continue;
224+
needsRebuild |= list.remove(listener);
225+
}
226+
if (needsRebuild) this.forceRebuild();
225227
writeLock.release();
226228
}
227229

0 commit comments

Comments
 (0)