raster pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=306632a21cf2caf2e5bf5ac0e47bd5984bb390cf

commit 306632a21cf2caf2e5bf5ac0e47bd5984bb390cf
Author: Carsten Haitzler (Rasterman) <ras...@rasterman.com>
Date:   Mon May 11 11:14:53 2020 +0100

    e menus - dont double unref/free a menu
    
    e_menu_item_submenu_set() already unrefs the previous submenu...
---
 src/bin/e_menu.c | 8 ++------
 1 file changed, 2 insertions(+), 6 deletions(-)

diff --git a/src/bin/e_menu.c b/src/bin/e_menu.c
index aef1dda2a..3b021251f 100644
--- a/src/bin/e_menu.c
+++ b/src/bin/e_menu.c
@@ -771,6 +771,7 @@ e_menu_item_submenu_set(E_Menu_Item *mi, E_Menu *sub)
    E_OBJECT_CHECK(mi);
    E_OBJECT_TYPE_CHECK(mi, E_MENU_ITEM_TYPE);
 
+   if (mi->submenu == sub) return;
    tmp = _e_active_menus_copy_ref();
    submenu = !!mi->submenu;
    if (mi->submenu) e_object_unref(E_OBJECT(mi->submenu));
@@ -3034,13 +3035,8 @@ _e_menu_cb_scroll_animator(void *data EINA_UNUSED)
 static void
 _e_menu_cb_item_submenu_post_default(void *data EINA_UNUSED, E_Menu *m 
EINA_UNUSED, E_Menu_Item *mi)
 {
-   E_Menu *subm;
-
    if (!mi->submenu) return;
-
-   subm = mi->submenu;
-   e_menu_item_submenu_set(mi, NULL);
-   e_object_del(E_OBJECT(subm));
+   e_menu_item_submenu_set(mi, NULL); // unis unrefs previous submenu
 }
 
 static void

-- 


Reply via email to