Jeff King [off-list ref] writes:
#define DEFINE_ALLOCATOR(name, type) \
+static struct alloc_state name##_state; \
void *alloc_##name##_node(void) \
{ \
+ return alloc_node(&name##_state, sizeof(type)); \
}
This is really nice. Thanks.
+static struct alloc_state commit_state;
+
void *alloc_commit_node(void)
{
static int commit_count;
- struct commit *c = alloc_raw_commit_node();
+ struct commit *c = alloc_node(&commit_state, sizeof(struct commit));
c->index = commit_count++;
return c;
}