зеркало из https://github.com/microsoft/git.git
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>
This commit is contained in:
Родитель
0fb370da9c
Коммит
66c2827ea4
|
@ -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;
|
||||
|
|
7
commit.c
7
commit.c
|
@ -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);
|
||||
|
|
6
commit.h
6
commit.h
|
@ -51,6 +51,12 @@ int parse_commit_buffer(struct commit *item, const void *buffer, unsigned long s
|
|||
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.
|
||||
*/
|
||||
|
|
2
object.c
2
object.c
|
@ -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;
|
||||
|
|
Загрузка…
Ссылка в новой задаче