diff --git a/sway/config.c b/sway/config.c index c1320acf..e9b55061 100644 --- a/sway/config.c +++ b/sway/config.c @@ -123,6 +123,8 @@ void free_config(struct sway_config *config) { } list_free(config->criteria); } + free_mode(config->current_mode); + free_bar_config(config->current_bar); list_free(config->no_focus); list_free(config->active_bar_modifiers); list_free(config->config_chain); diff --git a/sway/config/bar.c b/sway/config/bar.c index 8b88642e..7bca5f49 100644 --- a/sway/config/bar.c +++ b/sway/config/bar.c @@ -46,6 +46,7 @@ void free_bar_config(struct bar_config *bar) { free(bar->position); free(bar->hidden_state); free(bar->status_command); + free(bar->swaybar_command); free(bar->font); free(bar->separator_symbol); for (int i = 0; i < bar->bindings->length; i++) { diff --git a/sway/config/output.c b/sway/config/output.c index 2b041353..07543e3c 100644 --- a/sway/config/output.c +++ b/sway/config/output.c @@ -326,6 +326,7 @@ void free_output_config(struct output_config *oc) { free(oc->name); free(oc->background); free(oc->background_option); + free(oc->background_fallback); free(oc); } diff --git a/sway/criteria.c b/sway/criteria.c index 2f9992e9..1d404333 100644 --- a/sway/criteria.c +++ b/sway/criteria.c @@ -35,18 +35,19 @@ bool criteria_is_empty(struct criteria *criteria) { } void criteria_destroy(struct criteria *criteria) { + free(criteria->raw); + free(criteria->cmdlist); + free(criteria->target); pcre_free(criteria->title); pcre_free(criteria->shell); pcre_free(criteria->app_id); + pcre_free(criteria->con_mark); #ifdef HAVE_XWAYLAND pcre_free(criteria->class); pcre_free(criteria->instance); pcre_free(criteria->window_role); #endif - pcre_free(criteria->con_mark); free(criteria->workspace); - free(criteria->cmdlist); - free(criteria->raw); free(criteria); } diff --git a/sway/decoration.c b/sway/decoration.c index 849fa89c..a6007c2e 100644 --- a/sway/decoration.c +++ b/sway/decoration.c @@ -13,6 +13,7 @@ static void server_decoration_handle_destroy(struct wl_listener *listener, wl_list_remove(&deco->destroy.link); wl_list_remove(&deco->mode.link); wl_list_remove(&deco->link); + free(deco->wlr_server_decoration); free(deco); } diff --git a/swaybar/config.c b/swaybar/config.c index 1293cdae..0fd1f02e 100644 --- a/swaybar/config.c +++ b/swaybar/config.c @@ -83,6 +83,7 @@ void free_config(struct swaybar_config *config) { free(config->mode); free(config->hidden_state); free(config->sep_symbol); + free(config->modifier); for (int i = 0; i < config->bindings->length; i++) { struct swaybar_binding *binding = config->bindings->items[i]; free_binding(binding); diff --git a/swaybar/status_line.c b/swaybar/status_line.c index 65d6c052..744d2785 100644 --- a/swaybar/status_line.c +++ b/swaybar/status_line.c @@ -183,6 +183,9 @@ void status_line_free(struct status_line *status) { } json_tokener_free(status->tokener); } + free(status->read); + free(status->write); + free((char*) status->text); free(status->buffer); free(status); } diff --git a/swaynag/swaynag.c b/swaynag/swaynag.c index fa6bbe05..06185f20 100644 --- a/swaynag/swaynag.c +++ b/swaynag/swaynag.c @@ -412,6 +412,7 @@ void swaynag_destroy(struct swaynag *swaynag) { free(button); } list_free(swaynag->buttons); + free(swaynag->details.button_details); free(swaynag->details.message); free(swaynag->details.button_up.text); free(swaynag->details.button_down.text);