diff options
author | Jeff King <peff@peff.net> | 2014-06-10 17:40:14 -0400 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2014-06-13 12:08:17 -0700 |
commit | 66c2827ea4deb24ff541e30a5b6239ad5e9f6801 (patch) | |
tree | f18ee239e5cfe24ad5fed70b3e4836fe2aa63384 | |
parent | 0fb370da9ca972f9571530f95c0dacb31368c280 (diff) | |
download | git-66c2827ea4deb24ff541e30a5b6239ad5e9f6801.tar.gz |
provide a helper to set the commit buffer
Right now this is just a one-liner, but abstracting it will
make it easier to change later.
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r-- | builtin/blame.c | 2 | ||||
-rw-r--r-- | commit.c | 7 | ||||
-rw-r--r-- | commit.h | 6 | ||||
-rw-r--r-- | object.c | 2 |
4 files changed, 14 insertions, 3 deletions
diff --git a/builtin/blame.c b/builtin/blame.c index 85a3681306..38784ab9d6 100644 --- a/builtin/blame.c +++ b/builtin/blame.c @@ -2046,7 +2046,7 @@ static struct commit *fake_working_tree_commit(struct diff_options *opt, ident, ident, path, (!contents_from ? path : (!strcmp(contents_from, "-") ? "standard input" : contents_from))); - commit->buffer = strbuf_detach(&msg, NULL); + set_commit_buffer(commit, strbuf_detach(&msg, NULL)); if (!contents_from || strcmp("-", contents_from)) { struct stat st; @@ -245,6 +245,11 @@ int unregister_shallow(const unsigned char *sha1) return 0; } +void set_commit_buffer(struct commit *commit, void *buffer) +{ + commit->buffer = buffer; +} + void free_commit_buffer(struct commit *commit) { free(commit->buffer); @@ -335,7 +340,7 @@ int parse_commit(struct commit *item) } ret = parse_commit_buffer(item, buffer, size); if (save_commit_buffer && !ret) { - item->buffer = buffer; + set_commit_buffer(item, buffer); return 0; } free(buffer); @@ -52,6 +52,12 @@ int parse_commit(struct commit *item); void parse_commit_or_die(struct commit *item); /* + * Associate an object buffer with the commit. The ownership of the + * memory is handed over to the commit, and must be free()-able. + */ +void set_commit_buffer(struct commit *, void *buffer); + +/* * Free any cached object buffer associated with the commit. */ void free_commit_buffer(struct commit *); @@ -198,7 +198,7 @@ struct object *parse_object_buffer(const unsigned char *sha1, enum object_type t if (parse_commit_buffer(commit, buffer, size)) return NULL; if (!commit->buffer) { - commit->buffer = buffer; + set_commit_buffer(commit, buffer); *eaten_p = 1; } obj = &commit->object; |