Derrick Stolee <[email protected]> writes:
> +struct packed_oid_list {
> + struct object_id **list;
> + int nr;
> + int alloc;
> +};
What is the typical access pattern for this data structure? If it
is pretty much "allocate and grow as we find more", then a dynamic
array of struct (rather than a dynamic array of pointers to struct)
would be a lot more appropriate. IOW
struct packed_oid_list {
struct object_id *list;
int nr, alloc;
};
The version in the posted patch has to pay malloc overhead plus an
extra pointer for each object id in the list; unless you often
replace elements in the list randomly and/or you borrow object ID
field in other existing data structure whose lifetime is longer than
this list by pointing at it, I do not see how the extra indirection
is worth it.