aboutsummaryrefslogtreecommitdiffstats
path: root/sway/config.c
diff options
context:
space:
mode:
authorLibravatar Drew DeVault <sir@cmpwn.com>2018-03-31 00:35:06 -0400
committerLibravatar Drew DeVault <sir@cmpwn.com>2018-03-31 00:35:06 -0400
commit18173fb5ade5af0d09a3e270701207f55bb5f97e (patch)
treed4757df0da8c678464171a294f1ed02288b0733d /sway/config.c
parentMerge pull request #1676 from swaywm/swaybar-input (diff)
downloadsway-18173fb5ade5af0d09a3e270701207f55bb5f97e.tar.gz
sway-18173fb5ade5af0d09a3e270701207f55bb5f97e.tar.zst
sway-18173fb5ade5af0d09a3e270701207f55bb5f97e.zip
Free bar configs on reload and exit
Diffstat (limited to 'sway/config.c')
-rw-r--r--sway/config.c17
1 files changed, 10 insertions, 7 deletions
diff --git a/sway/config.c b/sway/config.c
index 347d9e73..e9e7057d 100644
--- a/sway/config.c
+++ b/sway/config.c
@@ -57,38 +57,41 @@ static void free_mode(struct sway_mode *mode) {
57void free_config(struct sway_config *config) { 57void free_config(struct sway_config *config) {
58 config_clear_handler_context(config); 58 config_clear_handler_context(config);
59 59
60 int i;
61
62 if (!config) { 60 if (!config) {
63 return; 61 return;
64 } 62 }
65 63
66 // TODO: handle all currently unhandled lists as we add implementations 64 // TODO: handle all currently unhandled lists as we add implementations
67 if (config->symbols) { 65 if (config->symbols) {
68 for (i = 0; i < config->symbols->length; i++) { 66 for (int i = 0; i < config->symbols->length; ++i) {
69 free_sway_variable(config->symbols->items[i]); 67 free_sway_variable(config->symbols->items[i]);
70 } 68 }
71 list_free(config->symbols); 69 list_free(config->symbols);
72 } 70 }
73 if (config->modes) { 71 if (config->modes) {
74 for (i = 0; i < config->modes->length; i++) { 72 for (int i = 0; i < config->modes->length; ++i) {
75 free_mode(config->modes->items[i]); 73 free_mode(config->modes->items[i]);
76 } 74 }
77 list_free(config->modes); 75 list_free(config->modes);
78 } 76 }
79 list_free(config->bars); 77 if (config->bars) {
78 for (int i = 0; i < config->bars->length; ++i) {
79 free_bar_config(config->bars->items[i]);
80 }
81 list_free(config->bars);
82 }
80 list_free(config->cmd_queue); 83 list_free(config->cmd_queue);
81 list_free(config->workspace_outputs); 84 list_free(config->workspace_outputs);
82 list_free(config->pid_workspaces); 85 list_free(config->pid_workspaces);
83 list_free(config->output_configs); 86 list_free(config->output_configs);
84 if (config->input_configs) { 87 if (config->input_configs) {
85 for (i = 0; i < config->input_configs->length; i++) { 88 for (int i = 0; i < config->input_configs->length; i++) {
86 free_input_config(config->input_configs->items[i]); 89 free_input_config(config->input_configs->items[i]);
87 } 90 }
88 list_free(config->input_configs); 91 list_free(config->input_configs);
89 } 92 }
90 if (config->seat_configs) { 93 if (config->seat_configs) {
91 for (i = 0; i < config->seat_configs->length; i++) { 94 for (int i = 0; i < config->seat_configs->length; i++) {
92 free_seat_config(config->seat_configs->items[i]); 95 free_seat_config(config->seat_configs->items[i]);
93 } 96 }
94 list_free(config->seat_configs); 97 list_free(config->seat_configs);