From 2eaa28dbdf6feffa33ac8474006bd0f975eb8427 Mon Sep 17 00:00:00 2001 From: nick-delirium Date: Mon, 17 Apr 2023 18:35:02 +0200 Subject: [PATCH] fix(tracker): optimise node counting --- tracker/tracker/src/main/app/nodes.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/tracker/tracker/src/main/app/nodes.ts b/tracker/tracker/src/main/app/nodes.ts index 097cce2c1..9891c210e 100644 --- a/tracker/tracker/src/main/app/nodes.ts +++ b/tracker/tracker/src/main/app/nodes.ts @@ -3,6 +3,7 @@ type ElementListener = [string, EventListener, boolean] export default class Nodes { private nodes: Array = [] + private totalNodeAmount = 0 private readonly nodeCallbacks: Array = [] private readonly elementListeners: Map> = new Map() @@ -30,6 +31,7 @@ export default class Nodes { let id: number = (node as any)[this.node_id] const isNew = id === undefined if (isNew) { + this.totalNodeAmount++ id = this.nodes.length this.nodes[id] = node ;(node as any)[this.node_id] = id @@ -48,9 +50,11 @@ export default class Nodes { node.removeEventListener(listener[0], listener[1], listener[2]), ) } + this.totalNodeAmount-- } return id } + cleanTree() { // sadly we keep empty items in array here resulting in some memory still being used // but its still better than keeping dead nodes or undef elements @@ -74,7 +78,7 @@ export default class Nodes { } getNodeCount() { - return this.nodes.filter(Boolean).length + return this.totalNodeAmount } clear(): void {