From b9cbf8e68a8b2e612a3c3533aeb9b4cb271757a9 Mon Sep 17 00:00:00 2001 From: Alastair Poole Date: Fri, 3 Jul 2020 10:32:07 +0100 Subject: [PATCH] Revert "menu: Use a global to store menu cache." This isn't a good change or fix. This reverts commit 55113b5a09121d0fb3e54898a764cb59f1deb97c. --- src/bin/ui/ui.c | 49 +++++++++++++++++-------------------------------- 1 file changed, 17 insertions(+), 32 deletions(-) diff --git a/src/bin/ui/ui.c b/src/bin/ui/ui.c index c3f66c1..3d58646 100644 --- a/src/bin/ui/ui.c +++ b/src/bin/ui/ui.c @@ -13,8 +13,6 @@ Ui *_ui; Evisum_Config *_evisum_config; -Proc_Info _evisum_menu_item_cache; - static Eina_Lock _lock; static void @@ -892,10 +890,10 @@ _item_menu_priority_add(Evas_Object *menu, Elm_Object_Item *menu_it, static void _item_menu_actions_add(Evas_Object *menu, Elm_Object_Item *menu_it, - Proc_Info *proc) + pid_t *pid) { elm_menu_item_add(menu, menu_it, evisum_icon_path_get("bug"), - _("Debug"), _item_menu_debug_cb, &proc->pid); + _("Debug"), _item_menu_debug_cb, pid); } static void @@ -911,32 +909,20 @@ _item_menu_properties_cb(void *data, Evas_Object *obj EINA_UNUSED, ui_process_win_add(ui->win, proc->pid, proc->command); } -static Proc_Info * -_evisum_menu_item_cache_get(Proc_Info *tmp) -{ - Proc_Info *proc = &_evisum_menu_item_cache; - - if (proc->command) - { - free(proc->command); - } - memcpy(proc, tmp, sizeof(Proc_Info)); - proc->command = strdup(tmp->command); - - return proc; -} - static Evas_Object * -_item_menu_create(Ui *ui, Proc_Info *tmp) +_item_menu_create(Ui *ui, Proc_Info *proc_info) { - Proc_Info *proc; Elm_Object_Item *menu_it, *menu_it2; Evas_Object *menu; Eina_Bool stopped; + static Proc_Info proc; + static char command[256]; - if (!tmp) return NULL; + if (!proc_info) return NULL; - proc = _evisum_menu_item_cache_get(tmp); + memcpy(&proc, proc_info, sizeof(Proc_Info)); + snprintf(command, sizeof(command), "%s", proc_info->command); + proc.command = command; ui->menu = menu = elm_menu_add(ui->win); if (!menu) return NULL; @@ -944,35 +930,35 @@ _item_menu_create(Ui *ui, Proc_Info *tmp) evas_object_smart_callback_add(menu, "dismissed", _item_menu_dismissed_cb, ui); - stopped = !(!strcmp(proc->state, "stop")); + stopped = !(!strcmp(proc.state, "stop")); menu_it = elm_menu_item_add(menu, NULL, evisum_icon_path_get("window"), - proc->command, NULL, NULL); + proc.command, NULL, NULL); menu_it2 = elm_menu_item_add(menu, menu_it, evisum_icon_path_get("window"), _("Actions"), NULL, NULL); - _item_menu_actions_add(menu, menu_it2, proc); + _item_menu_actions_add(menu, menu_it2, &proc.pid); elm_menu_item_separator_add(menu, menu_it); menu_it2 = elm_menu_item_add(menu, menu_it, evisum_icon_path_get("window"), _("Priority"), NULL, NULL); - _item_menu_priority_add(menu, menu_it2, proc); + _item_menu_priority_add(menu, menu_it2, &proc); elm_menu_item_separator_add(menu, menu_it); menu_it2 = elm_menu_item_add(menu, menu_it, evisum_icon_path_get("start"), - _("Start"), _item_menu_start_cb, proc); + _("Start"), _item_menu_start_cb, &proc); elm_object_item_disabled_set(menu_it2, stopped); menu_it2 = elm_menu_item_add(menu, menu_it, evisum_icon_path_get("stop"), - _("Stop"), _item_menu_stop_cb, proc); + _("Stop"), _item_menu_stop_cb, &proc); elm_object_item_disabled_set(menu_it2, !stopped); elm_menu_item_add(menu, menu_it, evisum_icon_path_get("kill"), "Kill", - _item_menu_kill_cb, proc); + _item_menu_kill_cb, &proc); elm_menu_item_separator_add(menu, menu_it); menu_it2 = elm_menu_item_add(menu, menu_it, evisum_icon_path_get("window"), - _("Properties"), _item_menu_properties_cb, proc); + _("Properties"), _item_menu_properties_cb, &proc); elm_menu_item_separator_add(menu, menu_it); elm_menu_item_add(menu, menu_it, evisum_icon_path_get("cancel"), @@ -1592,7 +1578,6 @@ _ui_init(Evas_Object *parent) _ui = NULL; _evisum_config = NULL; - memset(&_evisum_menu_item_cache, 0, sizeof(Proc_Info)); _config_load(ui);