commit 67bbcceba1433e41b5edfca32532b7d55a39a395
parent e15a8a03769736f588f68ae5e1cc24611ed334ae
Author: Mikkel Oscar Lyderik <mikkeloscar@gmail.com>
Date: Wed, 24 Feb 2016 18:53:09 +0100
Free config before exiting sway.
Apart from freeing the sway_config struct, this also terminates the
swaybars spawned by sway, since they are linked by PID to the bar config
structs.
Diffstat:
3 files changed, 9 insertions(+), 1 deletion(-)
diff --git a/include/config.h b/include/config.h
@@ -193,6 +193,10 @@ bool load_config(const char *file);
*/
bool read_config(FILE *file, bool is_active);
/**
+ * Free config struct
+ */
+void free_config(struct sway_config *config);
+/**
* Does variable replacement for a string based on the config's currently loaded variables.
*/
char *do_var_replacement(char *str);
diff --git a/sway/config.c b/sway/config.c
@@ -86,7 +86,7 @@ static void free_workspace_output(struct workspace_output *wo) {
free(wo);
}
-static void free_config(struct sway_config *config) {
+void free_config(struct sway_config *config) {
int i;
for (i = 0; i < config->symbols->length; ++i) {
free_variable(config->symbols->items[i]);
diff --git a/sway/main.c b/sway/main.c
@@ -228,6 +228,10 @@ int main(int argc, char **argv) {
ipc_terminate();
+ if (config) {
+ free_config(config);
+ }
+
return exit_value;
}