diff options
author | Dave Davenport <qball@blame.services> | 2021-09-06 20:44:25 +0200 |
---|---|---|
committer | Dave Davenport <qball@blame.services> | 2021-09-06 20:44:25 +0200 |
commit | fe87ccdfb18fb53657e5bfb2163993f00924024f (patch) | |
tree | e9709a2b782af0a7f0f440448221bb5e06a86f5b | |
parent | 0b5fbfa95366586cb546278b2703560e1fec2be9 (diff) |
[Theme] Fix memory leak in P_LIST
-rw-r--r-- | source/theme.c | 19 |
1 files changed, 3 insertions, 16 deletions
diff --git a/source/theme.c b/source/theme.c index adaaeecb..d2e03fd9 100644 --- a/source/theme.c +++ b/source/theme.c @@ -186,6 +186,9 @@ void rofi_theme_property_free(Property *p) { g_free(p->name); if (p->type == P_STRING) { g_free(p->value.s); + } else if (p->type == P_LIST) { + g_list_free_full(p->value.list, g_free); + p->value.list = 0; } else if (p->type == P_LINK) { g_free(p->value.link.name); if (p->value.link.def_value) { @@ -1346,22 +1349,6 @@ char *rofi_theme_parse_prepare_file(const char *file, const char *parent_file) { return filename; } -static void rofi_theme_parse_merge_widgets_no_media(ThemeWidget *parent, - ThemeWidget *child) { - g_assert(parent != NULL); - g_assert(child != NULL); - - if (parent == rofi_theme && g_strcmp0(child->name, "*") == 0) { - rofi_theme_widget_add_properties(rofi_theme, child->properties); - return; - } - - ThemeWidget *w = rofi_theme_find_or_create_name(parent, child->name); - rofi_theme_widget_add_properties(w, child->properties); - for (unsigned int i = 0; i < child->num_widgets; i++) { - rofi_theme_parse_merge_widgets_no_media(w, child->widgets[i]); - } -} void rofi_theme_parse_merge_widgets(ThemeWidget *parent, ThemeWidget *child) { g_assert(parent != NULL); g_assert(child != NULL); |