commit: use FLEX_ARRAY in struct merge_remote_desc
Convert the name member of struct merge_remote_desc to a FLEX_ARRAY and use FLEX_ALLOC_STR to build the struct. This halves the number of memory allocations, saves the storage for a pointer and avoids an indirection when reading the name. Suggested-by: Jeff King <peff@peff.net> Signed-off-by: Rene Scharfe <l.s.r@web.de> Reviewed-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
a25716535b
commit
5447a76aad
3
commit.c
3
commit.c
@ -1580,9 +1580,8 @@ void set_merge_remote_desc(struct commit *commit,
|
|||||||
const char *name, struct object *obj)
|
const char *name, struct object *obj)
|
||||||
{
|
{
|
||||||
struct merge_remote_desc *desc;
|
struct merge_remote_desc *desc;
|
||||||
desc = xmalloc(sizeof(*desc));
|
FLEX_ALLOC_STR(desc, name, name);
|
||||||
desc->obj = obj;
|
desc->obj = obj;
|
||||||
desc->name = xstrdup(name);
|
|
||||||
commit->util = desc;
|
commit->util = desc;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
2
commit.h
2
commit.h
@ -356,7 +356,7 @@ extern void for_each_mergetag(each_mergetag_fn fn, struct commit *commit, void *
|
|||||||
|
|
||||||
struct merge_remote_desc {
|
struct merge_remote_desc {
|
||||||
struct object *obj; /* the named object, could be a tag */
|
struct object *obj; /* the named object, could be a tag */
|
||||||
const char *name;
|
char name[FLEX_ARRAY];
|
||||||
};
|
};
|
||||||
#define merge_remote_util(commit) ((struct merge_remote_desc *)((commit)->util))
|
#define merge_remote_util(commit) ((struct merge_remote_desc *)((commit)->util))
|
||||||
extern void set_merge_remote_desc(struct commit *commit,
|
extern void set_merge_remote_desc(struct commit *commit,
|
||||||
|
Loading…
Reference in New Issue
Block a user