diff --git a/sway/config.c b/sway/config.c index 0aae16961..89b7d349a 100644 --- a/sway/config.c +++ b/sway/config.c @@ -87,7 +87,12 @@ void free_config(struct sway_config *config) { list_free(config->cmd_queue); list_free(config->workspace_outputs); list_free(config->pid_workspaces); - list_free(config->output_configs); + if (config->output_configs) { + for (int i = 0; i < config->output_configs->length; i++) { + free_output_config(config->output_configs->items[i]); + } + list_free(config->output_configs); + } if (config->input_configs) { for (int i = 0; i < config->input_configs->length; i++) { free_input_config(config->input_configs->items[i]); diff --git a/sway/config/bar.c b/sway/config/bar.c index b97076a02..ee062c6a5 100644 --- a/sway/config/bar.c +++ b/sway/config/bar.c @@ -30,6 +30,7 @@ void free_bar_config(struct bar_config *bar) { if (!bar) { return; } + free(bar->id); free(bar->mode); free(bar->position); free(bar->hidden_state);