On Tue, May 8, 2018 at 10:37 PM, Stefan Beller <sbeller@xxxxxxxxxx> wrote: >>> +void release_tree_node(struct tree *t); >>> +void release_commit_node(struct commit *c); >>> +void release_tag_node(struct tag *t); >> >> Do these really need to be defined in alloc.c? I would think that it >> would be sufficient to define them as static in object.c. >> >> Having said that, opinions differ (e.g. Duy said he thinks that release_ >> goes with alloc_ [1]) so I'm OK either way. > > I would have preferred static as well, but went with Duys suggestion of > having it in alloc.c. > > I can change that. Heh I thought you would make them static ;-) I just wanted to keep release logic outside that object pool, which is clearer and also makes it easier to replace it with mem-pool.c later. I'm ok with making it static. Or if you do export these, please move them close to the parse_* functions where memory is actually allocated. E.g. release_commit_node() is moved to commit.c, close to parse_commit_gently(), release_tree_node() close to parse_tree_gently(). -- Duy