From 898351be8fe2e66c86195516c1ed418d3f8e006d Mon Sep 17 00:00:00 2001 From: Boris Faure Date: Sun, 11 Oct 2020 23:35:11 +0200 Subject: [PATCH] colors: dup default_colorscheme so that all elements from color_scheme_list() have to be freed --- src/bin/colors.c | 12 ++++++++---- src/bin/colors.h | 3 +++ 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/src/bin/colors.c b/src/bin/colors.c index cd3385fb..8da138bb 100644 --- a/src/bin/colors.c +++ b/src/bin/colors.c @@ -737,6 +737,8 @@ color_scheme_list(void) Eet_File *ef_user = NULL; Eina_Iterator *it = NULL; Eet_Entry *entry; + Color_Scheme *cs_user; + Color_Scheme *cs_app; snprintf(path_user, sizeof(path_user) - 1, "%s/terminology/" COLORSCHEMES_FILENAME, @@ -746,7 +748,12 @@ color_scheme_list(void) "%s/" COLORSCHEMES_FILENAME, elm_app_data_dir_get()); - l = eina_list_sorted_insert(l, color_scheme_cmp, &default_colorscheme); + /* Add default theme */ + cs_app = malloc(sizeof(*cs_app)); + if (!cs_app) + return NULL; + memcpy(cs_app, &default_colorscheme, sizeof(*cs_app)); + l = eina_list_sorted_insert(l, color_scheme_cmp, cs_app); ef_app = eet_open(path_app, EET_FILE_MODE_READ); if (!ef_app) @@ -764,9 +771,6 @@ color_scheme_list(void) } EINA_ITERATOR_FOREACH(it, entry) { - Color_Scheme *cs_user; - Color_Scheme *cs_app; - cs_app = eet_data_read(ef_app, edd_cs, entry->name); if (!cs_app) { diff --git a/src/bin/colors.h b/src/bin/colors.h index cfe5d1e7..6406f62e 100644 --- a/src/bin/colors.h +++ b/src/bin/colors.h @@ -61,6 +61,9 @@ void color_scheme_apply_from_config(Evas_Object *edje, const Config *config); +Eina_List * +color_scheme_list(void); + void colors_init(void);