Преглед на файлове

Fixes node leaks from subscriptions

main
Eric Amodio преди 1 година
родител
ревизия
84d1ede76c
променени са 3 файла, в които са добавени 24 реда и са изтрити 2 реда
  1. +1
    -1
      src/views/nodes/repositoriesNode.ts
  2. +13
    -1
      src/views/nodes/workspaceNode.ts
  3. +10
    -0
      src/views/nodes/workspacesViewNode.ts

+ 1
- 1
src/views/nodes/repositoriesNode.ts Целия файл

@ -168,6 +168,6 @@ export class RepositoriesNode extends SubscribeableViewNode
@debug()
private onRepositoriesChanged(_e: RepositoriesChangeEvent) {
void this.triggerChange();
void this.triggerChange(true);
}
}

+ 13
- 1
src/views/nodes/workspaceNode.ts Целия файл

@ -30,7 +30,9 @@ export class WorkspaceNode extends ViewNode {
return this.workspace.name;
}
private _children: ViewNode[] | undefined;
private _children:
| (CommandMessageNode | MessageNode | RepositoryNode | WorkspaceMissingRepositoryNode)[]
| undefined;
async getChildren(): Promise<ViewNode[]> {
if (this._children == null) {
@ -130,6 +132,16 @@ export class WorkspaceNode extends ViewNode {
}
override refresh() {
if (this._children == null) return;
if (this._children.length) {
for (const child of this._children) {
if ('dispose' in child) {
child.dispose();
}
}
}
this._children = undefined;
}
}

+ 10
- 0
src/views/nodes/workspacesViewNode.ts Целия файл

@ -55,6 +55,16 @@ export class WorkspacesViewNode extends ViewNode {
@gate()
@debug()
override refresh() {
if (this._children == null) return;
if (this._children.length) {
for (const child of this._children) {
if ('dispose' in child) {
child.dispose();
}
}
}
this._children = undefined;
}
}

Зареждане…
Отказ
Запис