summaryrefslogtreecommitdiff
path: root/revision.c
diff options
context:
space:
mode:
authorAbhishek Kumar <abhishekkumar8222@gmail.com>2020-06-17 09:14:11 (GMT)
committerJunio C Hamano <gitster@pobox.com>2020-06-17 21:37:52 (GMT)
commitc752ad09c4ea479e8d54d08637cc0e5709723208 (patch)
treeaf0f1faa8d6e5149dec7d008a1370483c09ca151 /revision.c
parentc49c82aa4c1036ba1629f73223cff53230e695f3 (diff)
downloadgit-c752ad09c4ea479e8d54d08637cc0e5709723208.zip
git-c752ad09c4ea479e8d54d08637cc0e5709723208.tar.gz
git-c752ad09c4ea479e8d54d08637cc0e5709723208.tar.bz2
commit-graph: minimize commit_graph_data_slab access
In an earlier patch, multiple struct acccesses to `graph_pos` and `generation` were auto-converted to multiple method calls. Since the values are fixed and commit-slab access costly, we would be better off with storing the values as a local variable and reusing it. Signed-off-by: Abhishek Kumar <abhishekkumar8222@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'revision.c')
-rw-r--r--revision.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/revision.c b/revision.c
index 8648d7c..32be93f 100644
--- a/revision.c
+++ b/revision.c
@@ -3413,6 +3413,7 @@ static void init_topo_walk(struct rev_info *revs)
info->min_generation = GENERATION_NUMBER_INFINITY;
for (list = revs->commits; list; list = list->next) {
struct commit *c = list->item;
+ uint32_t generation;
if (parse_commit_gently(c, 1))
continue;
@@ -3420,8 +3421,9 @@ static void init_topo_walk(struct rev_info *revs)
test_flag_and_insert(&info->explore_queue, c, TOPO_WALK_EXPLORED);
test_flag_and_insert(&info->indegree_queue, c, TOPO_WALK_INDEGREE);
- if (commit_graph_generation(c) < info->min_generation)
- info->min_generation = commit_graph_generation(c);
+ generation = commit_graph_generation(c);
+ if (generation < info->min_generation)
+ info->min_generation = generation;
*(indegree_slab_at(&info->indegree, c)) = 1;
@@ -3472,6 +3474,7 @@ static void expand_topo_walk(struct rev_info *revs, struct commit *commit)
for (p = commit->parents; p; p = p->next) {
struct commit *parent = p->item;
int *pi;
+ uint32_t generation;
if (parent->object.flags & UNINTERESTING)
continue;
@@ -3479,8 +3482,9 @@ static void expand_topo_walk(struct rev_info *revs, struct commit *commit)
if (parse_commit_gently(parent, 1) < 0)
continue;
- if (commit_graph_generation(parent) < info->min_generation) {
- info->min_generation = commit_graph_generation(parent);
+ generation = commit_graph_generation(parent);
+ if (generation < info->min_generation) {
+ info->min_generation = generation;
compute_indegrees_to_depth(revs, info->min_generation);
}