From fb44a1cd7204b88987cd1370cb1a5ccf30d479d5 Mon Sep 17 00:00:00 2001 From: X512 Date: Thu, 2 Jul 2020 23:48:47 +0900 Subject: [PATCH] BMenu: fix memory leak in scripting Change-Id: Ia283594a622f758189cc8280683a4e068ae1f3af Reviewed-on: https://review.haiku-os.org/c/haiku/+/2978 Reviewed-by: waddlesplash --- src/kits/interface/Menu.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/kits/interface/Menu.cpp b/src/kits/interface/Menu.cpp index f280436e70..f00920df4c 100644 --- a/src/kits/interface/Menu.cpp +++ b/src/kits/interface/Menu.cpp @@ -1670,8 +1670,10 @@ void BMenu::_ScriptReceived(BMessage* message) if (err >= B_OK) { if (item->Submenu() == NULL) err = B_BAD_VALUE; - else + else { RemoveItem(item); + delete item; + } } } break; @@ -1737,8 +1739,10 @@ void BMenu::_ScriptReceived(BMessage* message) if (message->what == B_DELETE_PROPERTY) { BMenuItem *item = NULL; err = _ResolveItemSpecifier(specifier, what, item); - if (err >= B_OK) + if (err >= B_OK) { RemoveItem(item); + delete item; + } } break; case 12: { // MenuItem: EXECUTE