Merge branch 'jk/name-decoration-alloc'
The API to allocate the structure to keep track of commit decoration was cumbersome to use, inviting lazy code to overallocate memory. * jk/name-decoration-alloc: log-tree: use FLEX_ARRAY in name_decoration log-tree: make name_decoration hash static log-tree: make add_name_decoration a public function
This commit is contained in:
16
commit.h
16
commit.h
@ -26,13 +26,25 @@ extern int save_commit_buffer;
|
||||
extern const char *commit_type;
|
||||
|
||||
/* While we can decorate any object with a name, it's only used for commits.. */
|
||||
extern struct decoration name_decoration;
|
||||
struct name_decoration {
|
||||
struct name_decoration *next;
|
||||
int type;
|
||||
char name[1];
|
||||
char name[FLEX_ARRAY];
|
||||
};
|
||||
|
||||
enum decoration_type {
|
||||
DECORATION_NONE = 0,
|
||||
DECORATION_REF_LOCAL,
|
||||
DECORATION_REF_REMOTE,
|
||||
DECORATION_REF_TAG,
|
||||
DECORATION_REF_STASH,
|
||||
DECORATION_REF_HEAD,
|
||||
DECORATION_GRAFTED,
|
||||
};
|
||||
|
||||
void add_name_decoration(enum decoration_type type, const char *name, struct object *obj);
|
||||
const struct name_decoration *get_name_decoration(const struct object *obj);
|
||||
|
||||
struct commit *lookup_commit(const unsigned char *sha1);
|
||||
struct commit *lookup_commit_reference(const unsigned char *sha1);
|
||||
struct commit *lookup_commit_reference_gently(const unsigned char *sha1,
|
||||
|
Reference in New Issue
Block a user