aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRaghuram Subramani <raghus2247@gmail.com>2025-08-07 21:57:56 +0530
committerRaghuram Subramani <raghus2247@gmail.com>2025-08-07 21:57:56 +0530
commitf3944a41d1afb870cbb0daa34e030d7a8926060d (patch)
tree2465875e68bf873d09f5a84fb5d1257b430b1682
parentd79ee47a5142cf7228ff4892c27469ba6223c202 (diff)
engine: eachdo: move all free()s to the bottom
-rw-r--r--src/engine/eachdo.c13
1 files changed, 6 insertions, 7 deletions
diff --git a/src/engine/eachdo.c b/src/engine/eachdo.c
index 506b64a..a251a98 100644
--- a/src/engine/eachdo.c
+++ b/src/engine/eachdo.c
@@ -112,13 +112,6 @@ handle_eachdo(char **buffer, key_match_t *match, directive_t *directive)
fetch_files(operands, directives, atoms, &length);
char *content = calloc(length, sizeof(char));
-
- for (size_t i = 0; i < atoms->size; i++) {
- ptr_wrapper_t *wrapper = list_get(atoms, i);
- strcat(content, (char *) wrapper->ptr);
- free(wrapper->ptr);
- }
-
char *temp_buffer = strdup(*buffer);
free(*buffer);
@@ -134,6 +127,12 @@ handle_eachdo(char **buffer, key_match_t *match, directive_t *directive)
free(_directive->operands);
}
+ for (size_t i = 0; i < atoms->size; i++) {
+ ptr_wrapper_t *wrapper = list_get(atoms, i);
+ strcat(content, (char *) wrapper->ptr);
+ free(wrapper->ptr);
+ }
+
list_delete(directives);
list_delete(atoms);
free(content);