commit 06d46261f744f05d63b66e196c82df21c241a400
parent 3b21517176e95c8b36f4329819005f7bcd897af0
Author: Chris Bracken <chris@bracken.jp>
Date: Tue, 17 Feb 2026 18:10:53 +0900
delta: make GitHunkLine.content an owned copy
Diffstat:
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/src/git/delta.c b/src/git/delta.c
@@ -13,7 +13,7 @@ struct GitHunkLine {
size_t id;
int old_lineno;
int new_lineno;
- const char* content;
+ char* content;
size_t content_len;
};
@@ -46,12 +46,17 @@ GitHunkLine* githunkline_create(git_patch* patch,
line_out->id = line_id;
line_out->old_lineno = line->old_lineno;
line_out->new_lineno = line->new_lineno;
- line_out->content = line->content;
line_out->content_len = line->content_len;
+ line_out->content = ecalloc(line->content_len + 1, sizeof(char));
+ memcpy(line_out->content, line->content, line->content_len);
return line_out;
}
void githunkline_free(GitHunkLine* hunk_line) {
+ if (!hunk_line) {
+ return;
+ }
+ free(hunk_line->content);
free(hunk_line);
}