diff options
author | frsfnrrg <frsfnrrg@users.noreply.github.com> | 2018-07-17 11:19:32 -0400 |
---|---|---|
committer | frsfnrrg <frsfnrrg@users.noreply.github.com> | 2018-07-17 11:35:00 -0400 |
commit | 600676688a47bde05bc12110818127c5300dd876 (patch) | |
tree | aa359ee81e7148668eeeba6622a5b7b381747921 | |
parent | Fix uninitialized pointer in view_unmap (diff) | |
download | sway-600676688a47bde05bc12110818127c5300dd876.tar.gz sway-600676688a47bde05bc12110818127c5300dd876.tar.zst sway-600676688a47bde05bc12110818127c5300dd876.zip |
Free individual criteria in free_config
Also free cmd_list when cleaning up a struct criteria.
-rw-r--r-- | sway/config.c | 8 | ||||
-rw-r--r-- | sway/criteria.c | 2 |
2 files changed, 8 insertions, 2 deletions
diff --git a/sway/config.c b/sway/config.c index 2c051146..c620e4c7 100644 --- a/sway/config.c +++ b/sway/config.c | |||
@@ -24,6 +24,7 @@ | |||
24 | #include "sway/input/seat.h" | 24 | #include "sway/input/seat.h" |
25 | #include "sway/commands.h" | 25 | #include "sway/commands.h" |
26 | #include "sway/config.h" | 26 | #include "sway/config.h" |
27 | #include "sway/criteria.h" | ||
27 | #include "sway/tree/arrange.h" | 28 | #include "sway/tree/arrange.h" |
28 | #include "sway/tree/layout.h" | 29 | #include "sway/tree/layout.h" |
29 | #include "sway/tree/workspace.h" | 30 | #include "sway/tree/workspace.h" |
@@ -105,7 +106,12 @@ void free_config(struct sway_config *config) { | |||
105 | } | 106 | } |
106 | list_free(config->seat_configs); | 107 | list_free(config->seat_configs); |
107 | } | 108 | } |
108 | list_free(config->criteria); | 109 | if (config->criteria) { |
110 | for (int i = 0; i < config->criteria->length; ++i) { | ||
111 | criteria_destroy(config->criteria->items[i]); | ||
112 | } | ||
113 | list_free(config->criteria); | ||
114 | } | ||
109 | list_free(config->no_focus); | 115 | list_free(config->no_focus); |
110 | list_free(config->active_bar_modifiers); | 116 | list_free(config->active_bar_modifiers); |
111 | list_free(config->config_chain); | 117 | list_free(config->config_chain); |
diff --git a/sway/criteria.c b/sway/criteria.c index c999d248..e2b248de 100644 --- a/sway/criteria.c +++ b/sway/criteria.c | |||
@@ -37,7 +37,7 @@ void criteria_destroy(struct criteria *criteria) { | |||
37 | pcre_free(criteria->con_mark); | 37 | pcre_free(criteria->con_mark); |
38 | pcre_free(criteria->window_role); | 38 | pcre_free(criteria->window_role); |
39 | free(criteria->workspace); | 39 | free(criteria->workspace); |
40 | 40 | free(criteria->cmdlist); | |
41 | free(criteria->raw); | 41 | free(criteria->raw); |
42 | free(criteria); | 42 | free(criteria); |
43 | } | 43 | } |