Store themes as references to avoid passing large structs by value

This commit is contained in:
Johannes Marbach
2023-07-28 20:18:54 +02:00
parent d25f504b15
commit 1ebf67b850
3 changed files with 8 additions and 8 deletions

2
main.c
View File

@@ -222,7 +222,7 @@ static void toggle_theme(void) {
} }
static void set_theme(bool is_alternate) { static void set_theme(bool is_alternate) {
ul_theme_apply(&(ul_themes_themes[is_alternate ? conf_opts.theme.alternate_id : conf_opts.theme.default_id])); ul_theme_apply(ul_themes_themes[is_alternate ? conf_opts.theme.alternate_id : conf_opts.theme.default_id]);
} }
static void toggle_pw_btn_clicked_cb(lv_event_t *event) { static void toggle_pw_btn_clicked_cb(lv_event_t *event) {

View File

@@ -659,16 +659,16 @@ static const ul_theme ul_themes_pmos_dark = {
*/ */
const int ul_themes_num_themes = 4; const int ul_themes_num_themes = 4;
const ul_theme ul_themes_themes[] = { const ul_theme *ul_themes_themes[] = {
ul_themes_breezy_light, &ul_themes_breezy_light,
ul_themes_breezy_dark, &ul_themes_breezy_dark,
ul_themes_pmos_light, &ul_themes_pmos_light,
ul_themes_pmos_dark &ul_themes_pmos_dark
}; };
ul_themes_theme_id_t ul_themes_find_theme_with_name(const char *name) { ul_themes_theme_id_t ul_themes_find_theme_with_name(const char *name) {
for (int i = 0; i < ul_themes_num_themes; ++i) { for (int i = 0; i < ul_themes_num_themes; ++i) {
if (strcmp(ul_themes_themes[i].name, name) == 0) { if (strcmp(ul_themes_themes[i]->name, name) == 0) {
ul_log(UL_LOG_LEVEL_VERBOSE, "Found theme: %s\n", name); ul_log(UL_LOG_LEVEL_VERBOSE, "Found theme: %s\n", name);
return i; return i;
} }

View File

@@ -35,7 +35,7 @@ typedef enum {
/* Themes */ /* Themes */
extern const int ul_themes_num_themes; extern const int ul_themes_num_themes;
extern const ul_theme ul_themes_themes[]; extern const ul_theme *ul_themes_themes[];
/** /**
* Find the first theme with a given name. * Find the first theme with a given name.