From 2c82909b2138c19c06eb3c9135962240f41d1e08 Mon Sep 17 00:00:00 2001 From: Johannes Rieken Date: Fri, 9 Nov 2018 19:20:28 +0100 Subject: [PATCH] dispose submenu after use (#62848) * dispose submenu after use * dispose in the native case as well --- src/vs/workbench/browser/parts/titlebar/menubarControl.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/vs/workbench/browser/parts/titlebar/menubarControl.ts b/src/vs/workbench/browser/parts/titlebar/menubarControl.ts index b7ca7da0ba4..3d3ee9cd1b8 100644 --- a/src/vs/workbench/browser/parts/titlebar/menubarControl.ts +++ b/src/vs/workbench/browser/parts/titlebar/menubarControl.ts @@ -745,6 +745,7 @@ export class MenubarControl extends Disposable { const submenuActions: SubmenuAction[] = []; updateActions(submenu, submenuActions); target.push(new SubmenuAction(action.label, submenuActions)); + submenu.dispose(); } else { action.label = this.calculateActionLabel(action); target.push(action); @@ -998,7 +999,8 @@ export class MenubarControl extends Disposable { if (menuItem instanceof SubmenuItemAction) { const submenu = { items: [] }; - this.populateMenuItems(this.menuService.createMenu(menuItem.item.submenu, this.contextKeyService), submenu, keybindings); + const menuToDispose = this.menuService.createMenu(menuItem.item.submenu, this.contextKeyService); + this.populateMenuItems(menuToDispose, submenu, keybindings); let menubarSubmenuItem: IMenubarMenuItemSubmenu = { id: menuItem.id, @@ -1007,6 +1009,7 @@ export class MenubarControl extends Disposable { }; menuToPopulate.items.push(menubarSubmenuItem); + menuToDispose.dispose(); } else { let menubarMenuItem: IMenubarMenuItemAction = { id: menuItem.id, -- GitLab