diff options
author | emersion <contact@emersion.fr> | 2018-04-24 22:04:19 +0100 |
---|---|---|
committer | emersion <contact@emersion.fr> | 2018-04-24 22:28:55 +0100 |
commit | aa36899d8a54d359bf3da997fb6f681199e49938 (patch) | |
tree | 096f6c4635168e71e29e611cebc9afac9e22736b /swaybar/status_line.c | |
parent | Merge pull request #1858 from emersion/master (diff) | |
download | sway-aa36899d8a54d359bf3da997fb6f681199e49938.tar.gz sway-aa36899d8a54d359bf3da997fb6f681199e49938.tar.zst sway-aa36899d8a54d359bf3da997fb6f681199e49938.zip |
Fix a bunch of swaybar memory leaks
Diffstat (limited to 'swaybar/status_line.c')
-rw-r--r-- | swaybar/status_line.c | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/swaybar/status_line.c b/swaybar/status_line.c index 8d781ca3..e0e7414a 100644 --- a/swaybar/status_line.c +++ b/swaybar/status_line.c | |||
@@ -1,4 +1,4 @@ | |||
1 | #define _POSIX_C_SOURCE 199309L | 1 | #define _POSIX_C_SOURCE 200809L |
2 | #include <fcntl.h> | 2 | #include <fcntl.h> |
3 | #include <json-c/json.h> | 3 | #include <json-c/json.h> |
4 | #include <stdlib.h> | 4 | #include <stdlib.h> |
@@ -126,5 +126,17 @@ void status_line_free(struct status_line *status) { | |||
126 | close(status->read_fd); | 126 | close(status->read_fd); |
127 | close(status->write_fd); | 127 | close(status->write_fd); |
128 | kill(status->pid, SIGTERM); | 128 | kill(status->pid, SIGTERM); |
129 | switch (status->protocol) { | ||
130 | case PROTOCOL_I3BAR:; | ||
131 | struct i3bar_block *block, *tmp; | ||
132 | wl_list_for_each_safe(block, tmp, &status->blocks, link) { | ||
133 | i3bar_block_free(block); | ||
134 | } | ||
135 | free(status->i3bar_state.buffer); | ||
136 | break; | ||
137 | default: | ||
138 | free(status->text_state.buffer); | ||
139 | break; | ||
140 | } | ||
129 | free(status); | 141 | free(status); |
130 | } | 142 | } |