summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDave Davenport <qball@blame.services>2021-09-06 20:44:25 +0200
committerDave Davenport <qball@blame.services>2021-09-06 20:44:25 +0200
commitfe87ccdfb18fb53657e5bfb2163993f00924024f (patch)
treee9709a2b782af0a7f0f440448221bb5e06a86f5b
parent0b5fbfa95366586cb546278b2703560e1fec2be9 (diff)
[Theme] Fix memory leak in P_LIST
-rw-r--r--source/theme.c19
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);