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 {