Skip to content

Commit ba37f00

Browse files
Copilotalexr00
andcommitted
Fix memory leak with event listeners
- Properly dispose event listeners after promise resolves - Remove unrelated changes to proposed API file Co-authored-by: alexr00 <38270282+alexr00@users.noreply.github.com>
1 parent d269602 commit ba37f00

File tree

1 file changed

+8
-2
lines changed

1 file changed

+8
-2
lines changed

src/commands.ts

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1629,18 +1629,24 @@ ${contents}
16291629
quickPick.busy = false;
16301630

16311631
// Handle selection
1632+
let acceptDisposable: vscode.Disposable;
1633+
let hideDisposable: vscode.Disposable;
16321634
const selected = await new Promise<(vscode.QuickPickItem & { pr?: PullRequestModel }) | string | undefined>((resolve) => {
1633-
quickPick.onDidAccept(() => {
1635+
acceptDisposable = quickPick.onDidAccept(() => {
16341636
if (quickPick.selectedItems.length > 0) {
16351637
resolve(quickPick.selectedItems[0]);
16361638
} else if (quickPick.value) {
16371639
// User typed something but didn't select from list
16381640
resolve(quickPick.value);
16391641
}
16401642
});
1641-
quickPick.onDidHide(() => resolve(undefined));
1643+
hideDisposable = quickPick.onDidHide(() => resolve(undefined));
16421644
});
16431645

1646+
// Clean up event listeners
1647+
acceptDisposable.dispose();
1648+
hideDisposable.dispose();
1649+
16441650
quickPick.hide();
16451651
quickPick.dispose();
16461652

0 commit comments

Comments
 (0)