diff options
author | Jeff King <peff@peff.net> | 2014-07-13 02:42:08 -0400 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2014-07-28 10:14:33 -0700 |
commit | 5de7f500c13c8158696a68d86da1030313ddaf69 (patch) | |
tree | 73eee5d136d2b00c623c3fceceffab85c9e9b47e | |
parent | c4ad00f8ccb59a0ae0735e8e32b203d4bd835616 (diff) | |
download | git-5de7f500c13c8158696a68d86da1030313ddaf69.tar.gz |
alloc: factor out commit index
We keep a static counter to set the commit index on newly
allocated objects. However, since we also need to set the
index on any_objects which are converted to commits, let's
make the counter available as a public function.
While we're moving it, let's make sure the counter is
allocated as an unsigned integer to match the index field in
"struct commit".
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r-- | alloc.c | 9 | ||||
-rw-r--r-- | cache.h | 1 |
2 files changed, 8 insertions, 2 deletions
@@ -82,12 +82,17 @@ void *alloc_object_node(void) static struct alloc_state commit_state; +unsigned int alloc_commit_index(void) +{ + static unsigned int count; + return count++; +} + void *alloc_commit_node(void) { - static int commit_count; struct commit *c = alloc_node(&commit_state, sizeof(struct commit)); c->object.type = OBJ_COMMIT; - c->index = commit_count++; + c->index = alloc_commit_index(); return c; } @@ -1354,6 +1354,7 @@ extern void *alloc_commit_node(void); extern void *alloc_tag_node(void); extern void *alloc_object_node(void); extern void alloc_report(void); +extern unsigned int alloc_commit_index(void); /* trace.c */ __attribute__((format (printf, 1, 2))) |