icon_cache: openbsd changes.

Same arch different processor different results, something is
getting clobbered, but not by us.

This is ok.
This commit is contained in:
Alastair Poole 2021-05-09 12:54:19 +01:00
parent ff075963f2
commit 7bbb821d71
5 changed files with 32 additions and 26 deletions

View File

@ -738,7 +738,6 @@ evisum_ui_activate(Evisum_Ui *ui, Evisum_Action action, int pid)
void
evisum_ui_shutdown(Evisum_Ui *ui)
{
evisum_icon_cache_shutdown();
evisum_ui_config_save(ui);
ecore_thread_cancel(ui->background_poll_thread);
@ -763,8 +762,6 @@ evisum_ui_init(void)
evisum_ui_config_load(ui);
evisum_icon_cache_init();
_ui_init_system_probe(ui);
return ui;

View File

@ -27,6 +27,7 @@ typedef struct
{
Ecore_Thread *thread;
Evisum_Ui_Cache *cache;
Eina_Hash *icon_cache;
Ecore_Event_Handler *handler;
Eina_Hash *cpu_times;
Eina_Bool skip_wait;
@ -742,7 +743,7 @@ _content_get(void *data, Evas_Object *obj, const char *source)
evas_object_size_hint_min_set(rec, w, 1);
evas_object_show(lb);
const char *new = evisum_icon_path_get(evisum_icon_cache_find(proc));
const char *new = evisum_icon_path_get(evisum_icon_cache_find(wd->icon_cache, proc));
const char *old = NULL;
o = evas_object_data_get(it->obj, "icon");
elm_image_file_get(o, &old, NULL);
@ -1547,7 +1548,7 @@ _item_menu_create(Win_Data *wd, Proc_Info *proc)
stopped = !(!strcmp(proc->state, "stop"));
menu_it = elm_menu_item_add(menu, NULL,
evisum_icon_path_get(evisum_icon_cache_find(proc)),
evisum_icon_path_get(evisum_icon_cache_find(wd->icon_cache, proc)),
proc->command, NULL, NULL);
menu_it2 = elm_menu_item_add(menu, menu_it, evisum_icon_path_get("actions"),
@ -2340,6 +2341,7 @@ _win_del_cb(void *data EINA_UNUSED, Evas *e EINA_UNUSED,
ecore_thread_wait(wd->thread, 0.5);
ecore_event_handler_del(wd->handler);
evisum_icon_cache_del(wd->icon_cache);
wd->thread = NULL;
ui->proc.win = NULL;
@ -2447,6 +2449,7 @@ ui_process_list_win_add(Evisum_Ui *ui)
elm_object_content_set(win, tb);
wd->cache = evisum_ui_item_cache_new(wd->glist, _item_create, 30);
wd->icon_cache = evisum_icon_cache_new();
wd->cpu_times = eina_hash_int64_new(_cpu_times_free_cb);
evas_object_event_callback_add(win, EVAS_CALLBACK_DEL,

View File

@ -31,6 +31,8 @@ typedef struct
Eina_Bool kthreads_has_rss;
Eina_Hash *icon_cache;
struct
{
Evas_Object *entry_cmd;
@ -570,14 +572,17 @@ static Evas_Object *
_children_icon_get(void *data, Evas_Object *obj, const char *part)
{
Proc_Info *proc;
Win_Data *wd;
Evas_Object *ic = elm_icon_add(obj);
proc = data;
wd = evas_object_data_get(obj, "windata");
if (!strcmp(part, "elm.swallow.icon"))
{
elm_icon_standard_set(ic,
evisum_icon_path_get(
evisum_icon_cache_find(proc)));
evisum_icon_cache_find(wd->icon_cache, proc)));
}
evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
@ -1158,7 +1163,7 @@ _general_tab_add(Evas_Object *parent, Win_Data *wd)
evas_object_size_hint_align_set(ic, FILL, FILL);
elm_icon_standard_set(ic,
evisum_icon_path_get(
evisum_icon_cache_find(proc)));
evisum_icon_cache_find(wd->icon_cache, proc)));
evas_object_show(ic);
proc_info_free(proc);
elm_table_pack(tb, ic, 0, i, 1, 1);
@ -1514,7 +1519,7 @@ _children_tab_add(Evas_Object *parent, Win_Data *wd)
elm_object_content_set(fr, bx);
wd->children.glist = glist = elm_genlist_add(parent);
evas_object_data_set(glist, "ui", wd);
evas_object_data_set(glist, "windata", wd);
elm_object_focus_allow_set(glist, 1);
elm_genlist_homogeneous_set(glist, 1);
elm_genlist_select_mode_set(glist, ELM_OBJECT_SELECT_MODE_DEFAULT);
@ -1729,6 +1734,8 @@ _win_del_cb(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
if (wd->threads.cache)
evisum_ui_item_cache_free(wd->threads.cache);
evisum_icon_cache_del(wd->icon_cache);
evas_object_del(win);
free(wd);
@ -1795,6 +1802,7 @@ ui_process_view_win_add(int pid, Evisum_Proc_Action action)
wd->threads.cache = NULL;
wd->threads.sort_reverse = 1;
wd->threads.sort_cb = _sort_by_cpu_usage;
wd->icon_cache = evisum_icon_cache_new();
proc = proc_info_by_pid(pid);
if (!proc)

View File

@ -5,11 +5,6 @@
#define ARRAY_SIZE(n) sizeof(n) / sizeof(n[0])
#if !defined(__OpenBSD__)
static
#endif
Eina_Hash *_icon_cache;
Evas_Object *
evisum_ui_tab_add(Evas_Object *parent, Evas_Object **alias, const char *text,
Evas_Smart_Cb clicked_cb, void *data)
@ -158,21 +153,24 @@ _icon_cache_free_cb(void *data)
free(ic_name);
}
void
evisum_icon_cache_init(void)
Eina_Hash *
evisum_icon_cache_new(void)
{
_icon_cache = NULL;
_icon_cache = eina_hash_string_superfast_new(_icon_cache_free_cb);
Eina_Hash *icon_cache;
icon_cache = eina_hash_string_superfast_new(_icon_cache_free_cb);
return icon_cache;
}
void
evisum_icon_cache_shutdown(void)
evisum_icon_cache_del(Eina_Hash *icon_cache)
{
eina_hash_free(_icon_cache);
eina_hash_free(icon_cache);
}
const char *
evisum_icon_cache_find(const Proc_Info *proc)
evisum_icon_cache_find(Eina_Hash *icon_cache, const Proc_Info *proc)
{
Efreet_Desktop *e;
const char *name, *cmd;
@ -187,7 +185,7 @@ evisum_icon_cache_find(const Proc_Info *proc)
cmd = proc->command;
exists = eina_hash_find(_icon_cache, cmd);
exists = eina_hash_find(icon_cache, cmd);
if (exists) return exists;
if (!strncmp(cmd, "enlightenment", 13)) return "e";
@ -201,7 +199,7 @@ evisum_icon_cache_find(const Proc_Info *proc)
else
name = cmd;
eina_hash_add(_icon_cache, cmd, strdup(name));
eina_hash_add(icon_cache, cmd, strdup(name));
efreet_desktop_free(e);

View File

@ -16,14 +16,14 @@
#define UI_CHILD_WIN_WIDTH 360
#define UI_CHILD_WIN_HEIGHT 360
void
evisum_icon_cache_init(void);
Eina_Hash *
evisum_icon_cache_new(void);
void
evisum_icon_cache_shutdown(void);
evisum_icon_cache_del(Eina_Hash *icon_cache);
const char *
evisum_icon_cache_find(const Proc_Info *proc);
evisum_icon_cache_find(Eina_Hash *icon_cache, const Proc_Info *proc);
Evas_Object *
evisum_ui_tab_add(Evas_Object *parent, Evas_Object **alias, const char *text,