diff options
author | taiyu <taiyu.len@gmail.com> | 2015-08-23 19:09:18 -0700 |
---|---|---|
committer | taiyu <taiyu.len@gmail.com> | 2015-08-23 19:09:18 -0700 |
commit | c8415d7fef53a9efa776dcbbaa2c9c2d76ff8b49 (patch) | |
tree | 6316fab4aff82a5f3a6dbba2dc4057dd2a2d880d | |
parent | Merge pull request #121 from taiyu-len/pointer_mod (diff) | |
download | sway-c8415d7fef53a9efa776dcbbaa2c9c2d76ff8b49.tar.gz sway-c8415d7fef53a9efa776dcbbaa2c9c2d76ff8b49.tar.zst sway-c8415d7fef53a9efa776dcbbaa2c9c2d76ff8b49.zip |
split_string memory leaks cleanedup
-rw-r--r-- | include/stringop.h | 3 | ||||
-rw-r--r-- | sway/commands.c | 4 | ||||
-rw-r--r-- | sway/config.c | 3 | ||||
-rw-r--r-- | sway/workspace.c | 8 |
4 files changed, 11 insertions, 7 deletions
diff --git a/include/stringop.h b/include/stringop.h index 4300f9ed..7d17af95 100644 --- a/include/stringop.h +++ b/include/stringop.h | |||
@@ -4,8 +4,11 @@ | |||
4 | 4 | ||
5 | char *strip_whitespace(char *str, int *trimmed_start); | 5 | char *strip_whitespace(char *str, int *trimmed_start); |
6 | char *strip_comments(char *str); | 6 | char *strip_comments(char *str); |
7 | |||
8 | // Must be freed with free_flat_list | ||
7 | list_t *split_string(const char *str, const char *delims); | 9 | list_t *split_string(const char *str, const char *delims); |
8 | void free_flat_list(list_t *list); | 10 | void free_flat_list(list_t *list); |
11 | |||
9 | char *code_strchr(const char *string, char delimiter); | 12 | char *code_strchr(const char *string, char delimiter); |
10 | char *code_strstr(const char *haystack, const char *needle); | 13 | char *code_strstr(const char *haystack, const char *needle); |
11 | int unescape_string(char *string); | 14 | int unescape_string(char *string); |
diff --git a/sway/commands.c b/sway/commands.c index 7ee8c558..21ff5c7f 100644 --- a/sway/commands.c +++ b/sway/commands.c | |||
@@ -129,7 +129,7 @@ static bool cmd_bindsym(struct sway_config *config, int argc, char **argv) { | |||
129 | *key = sym; | 129 | *key = sym; |
130 | list_add(binding->keys, key); | 130 | list_add(binding->keys, key); |
131 | } | 131 | } |
132 | list_free(split); | 132 | free_flat_list(split); |
133 | 133 | ||
134 | // TODO: Check if there are other commands with this key binding | 134 | // TODO: Check if there are other commands with this key binding |
135 | struct sway_mode *mode = config->current_mode; | 135 | struct sway_mode *mode = config->current_mode; |
@@ -268,7 +268,7 @@ static bool cmd_floating_mod(struct sway_config *config, int argc, char **argv) | |||
268 | } | 268 | } |
269 | } | 269 | } |
270 | } | 270 | } |
271 | list_free(split); | 271 | free_flat_list(split); |
272 | if (!config->floating_mod) { | 272 | if (!config->floating_mod) { |
273 | sway_log(L_ERROR, "bindsym - unknown keys %s", argv[0]); | 273 | sway_log(L_ERROR, "bindsym - unknown keys %s", argv[0]); |
274 | return false; | 274 | return false; |
diff --git a/sway/config.c b/sway/config.c index fcd60de7..53fc860a 100644 --- a/sway/config.c +++ b/sway/config.c | |||
@@ -131,6 +131,7 @@ static char *get_config_path() { | |||
131 | strcpy(test, paths->items[i]); | 131 | strcpy(test, paths->items[i]); |
132 | strcat(test, name); | 132 | strcat(test, name); |
133 | if (exists(test)) { | 133 | if (exists(test)) { |
134 | free_config(temp_config); | ||
134 | free_flat_list(paths); | 135 | free_flat_list(paths); |
135 | return test; | 136 | return test; |
136 | } | 137 | } |
@@ -225,7 +226,7 @@ bool read_config(FILE *file, bool is_active) { | |||
225 | success = false; | 226 | success = false; |
226 | temp_config->failed = true; | 227 | temp_config->failed = true; |
227 | } | 228 | } |
228 | list_free(args); | 229 | free_flat_list(args); |
229 | 230 | ||
230 | _continue: | 231 | _continue: |
231 | if (line && line[strlen(line) - 1] == '{') { | 232 | if (line && line[strlen(line) - 1] == '{') { |
diff --git a/sway/workspace.c b/sway/workspace.c index 80b67128..4c8bb62f 100644 --- a/sway/workspace.c +++ b/sway/workspace.c | |||
@@ -42,22 +42,22 @@ char *workspace_next_name(void) { | |||
42 | strcmp(target, "back_and_forth") == 0 || | 42 | strcmp(target, "back_and_forth") == 0 || |
43 | strcmp(target, "current") == 0) | 43 | strcmp(target, "current") == 0) |
44 | { | 44 | { |
45 | list_free(args); | 45 | free_flat_list(args); |
46 | continue; | 46 | continue; |
47 | } | 47 | } |
48 | 48 | ||
49 | // Make sure that the workspace doesn't already exist | 49 | // Make sure that the workspace doesn't already exist |
50 | if (workspace_by_name(target)) { | 50 | if (workspace_by_name(target)) { |
51 | list_free(args); | 51 | free_flat_list(args); |
52 | continue; | 52 | continue; |
53 | } | 53 | } |
54 | 54 | ||
55 | list_free(args); | 55 | free_flat_list(args); |
56 | 56 | ||
57 | sway_log(L_DEBUG, "Workspace: Found free name %s", target); | 57 | sway_log(L_DEBUG, "Workspace: Found free name %s", target); |
58 | return target; | 58 | return target; |
59 | } | 59 | } |
60 | list_free(args); | 60 | free_flat_list(args); |
61 | } | 61 | } |
62 | // As a fall back, get the current number of active workspaces | 62 | // As a fall back, get the current number of active workspaces |
63 | // and return that + 1 for the next workspace's name | 63 | // and return that + 1 for the next workspace's name |