Re: [RFC/PATCH 2/4] revert: refactor code into a do_pick_commit() function
- From
Jonathan Nieder <jrnieder@gmail.com>
- Date
- May 30, 2010, 20:07 UTC
- Message-ID
- <20100530200708.GA32728@progeny.tock>
- In-Reply-To
- <AANLkTik6SBEkOICHdMYprzGitfS2hezDXKQ8Q5R8cAYs@mail.gmail.com>
Ramkumar Ramachandra wrote:
> Christian Couder wrote:
Show 9 quoted lines
>> -static int revert_or_cherry_pick(int argc, const char **argv)
>> +static int do_pick_commit()
>> {
>> unsigned char head[20];
>> struct commit *base, *next, *parent;
>
> Is there a better way to do this instead of allocating memory for each
> commit? When you cherry pick a lot of commits, it might make sense to
> use a shared memory pool.In fact they do belong to a pool, as far as I can tell.
lookup_commit_reference ->
lookup_commit_reference_gently ->
parse_object ->
parse_object_buffer ->
lookup_commit ->
lookup_object (or create_object, alloc_commit_node)alloc_commit_node is defined in alloc.c to draw from a growing array of fixed-size, never-freed commit objects.
Hope that helps. Jonathan