From 4a0228b362801af796c8596317b735860fc9e427 Mon Sep 17 00:00:00 2001 From: dfriederich <109323095+dfriederich@users.noreply.github.com> Date: Wed, 18 Sep 2024 08:10:53 -0500 Subject: [PATCH] Leak fix, use same signature in disconnect (#14186) The disconnect from the signal was not passing the this reference as it was used in the connect, hence the disconnect failed to find the handler. --- packages/plugin-ext/src/main/browser/tabs/tabs-main.ts | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/packages/plugin-ext/src/main/browser/tabs/tabs-main.ts b/packages/plugin-ext/src/main/browser/tabs/tabs-main.ts index ca38088b8f297..d78631ef74d0c 100644 --- a/packages/plugin-ext/src/main/browser/tabs/tabs-main.ts +++ b/packages/plugin-ext/src/main/browser/tabs/tabs-main.ts @@ -231,9 +231,13 @@ export class TabsMainImpl implements TabsMain, Disposable { return { kind: TabInputKind.UnknownInput }; } - protected connectToSignal(disposableList: DisposableCollection, signal: { connect(listener: T, context: unknown): void, disconnect(listener: T): void }, listener: T): void { + protected connectToSignal(disposableList: DisposableCollection, + signal: { + connect(listener: T, context: unknown): void, + disconnect(listener: T, context: unknown): void + }, listener: T): void { signal.connect(listener, this); - disposableList.push(Disposable.create(() => signal.disconnect(listener))); + disposableList.push(Disposable.create(() => signal.disconnect(listener, this))); } protected tabDtosEqual(a: TabDto, b: TabDto): boolean {