Sorry if I'm misunderstanding the code, but it appears to me that
a944b682a694b4e7900c94d6550845f8d52af574 forgot to update the "cap"
field upon resizing column arrays, making it always 0 and causing
unnecessary allocations. This commit fixes that by keeping the "cap"
field updated.
---
sort.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/sort.c b/sort.c
index fbb1abf..99376ca 100644
--- a/sort.c
+++ b/sort.c
@@ -126,6 +126,7 @@ columns(struct line *line, const struct keydef *kd, struct
column *col)
if (!(col->line.data) || col->cap < col->line.len + 1) {
free(col->line.data);
col->line.data = emalloc(col->line.len + 1);
+ col->cap = col->line.len + 1;
}
memcpy(col->line.data, start.data, col->line.len);
col->line.data[col->line.len] = '\0';
--
2.47.2