[PATCH v2 14/14] commit.h: delete 'util' field in struct commit
- From
Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
- Date
- May 13, 2018, 05:52 UTC
- Message-ID
- <20180513055208.17952-15-pclouds@gmail.com>
- In-Reply-To
- <20180513055208.17952-1-pclouds@gmail.com>
If you have come this far, you probably have seen that this 'util' pointer is used for many different purposes. Some are not even contained in a command code, but buried deep in common code with no clue who will use it and how.
The move to using commit-slab gives us a much better picture of how some piece of data is associated with a commit and what for. Since nobody uses 'util' pointer anymore, we can retire so that nobody will abuse it again. commit-slab will be the way forward for associating data to a commit.
As a side benefit, this shrinks struct commit by 8 bytes (on 64-bit architecture) which should help reduce memory usage for reachability test a bit. This is also what commit-slab is invented for [1].
[1] 96c4f4a370 (commit: allow associating auxiliary info on-demand - 2013-04-09)
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> --- commit.h | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/commit.h b/commit.h index 838f6a6b26..70371e111e 100644 --- a/commit.h +++ b/commit.h @@ -18,12 +18,16 @@ struct commit_list { struct commit { struct object object; - void *util; unsigned int index; timestamp_t date; struct commit_list *parents; struct tree *tree; uint32_t graph_pos; + /* + * Do not add more fields here unless it's _very_ often + * used. Use commit-slab to associate more data with a commit + * instead. + */ }; extern int save_commit_buffer;
-- 2.17.0.705.g3525833791