Skip to content

Commit 7348759

Browse files
committed
perf: use LinkedHashSet vs Array to store Updatable, this allows significantly faster deletion of numerous Updatable objects, such as animations
1 parent eab55b5 commit 7348759

File tree

1 file changed

+2
-2
lines changed
  • fxgl-scene/src/main/kotlin/com/almasb/fxgl/scene

1 file changed

+2
-2
lines changed

fxgl-scene/src/main/kotlin/com/almasb/fxgl/scene/Scene.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ abstract class Scene : State<Scene>, UpdatableRunner {
5656
override val isSubState: Boolean = false
5757
override val isAllowConcurrency: Boolean = false
5858

59-
private val listeners = Array<Updatable>()
59+
private val listeners = LinkedHashSet<Updatable>()
6060
private val listenersToAdd = Array<Updatable>()
6161
private val listenersToRemove = Array<Updatable>()
6262

@@ -105,7 +105,7 @@ abstract class Scene : State<Scene>, UpdatableRunner {
105105
onUpdate(tpf)
106106

107107
listeners.addAll(listenersToAdd)
108-
listeners.removeAllByIdentity(listenersToRemove)
108+
listeners.removeAll(listenersToRemove)
109109

110110
listenersToAdd.clear()
111111
listenersToRemove.clear()

0 commit comments

Comments
 (0)