Browse Source

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>
maint
René Scharfe 9 years ago committed by Junio C Hamano
parent
commit
5447a76aad
  1. 3
      commit.c
  2. 2
      commit.h

3
commit.c

@ -1580,9 +1580,8 @@ void set_merge_remote_desc(struct commit *commit, @@ -1580,9 +1580,8 @@ void set_merge_remote_desc(struct commit *commit,
const char *name, struct object *obj)
{
struct merge_remote_desc *desc;
desc = xmalloc(sizeof(*desc));
FLEX_ALLOC_STR(desc, name, name);
desc->obj = obj;
desc->name = xstrdup(name);
commit->util = desc;
}


2
commit.h

@ -356,7 +356,7 @@ extern void for_each_mergetag(each_mergetag_fn fn, struct commit *commit, void * @@ -356,7 +356,7 @@ extern void for_each_mergetag(each_mergetag_fn fn, struct commit *commit, void *

struct merge_remote_desc {
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))
extern void set_merge_remote_desc(struct commit *commit,

Loading…
Cancel
Save