@@ -58,14 +58,15 @@ static struct commit_list *paint_down_to_common(struct repository *r,
5858 struct commit * commit = prio_queue_get (& queue );
5959 struct commit_list * parents ;
6060 int flags ;
61+ uint32_t generation = commit_graph_generation (commit );
6162
62- if (min_generation && commit_graph_generation ( commit ) > last_gen )
63+ if (min_generation && generation > last_gen )
6364 BUG ("bad generation skip %8x > %8x at %s" ,
64- commit_graph_generation ( commit ) , last_gen ,
65+ generation , last_gen ,
6566 oid_to_hex (& commit -> object .oid ));
66- last_gen = commit_graph_generation ( commit ) ;
67+ last_gen = generation ;
6768
68- if (commit_graph_generation ( commit ) < min_generation )
69+ if (generation < min_generation )
6970 break ;
7071
7172 flags = commit -> object .flags & (PARENT1 | PARENT2 | STALE );
@@ -181,13 +182,15 @@ static int remove_redundant(struct repository *r, struct commit **array, int cnt
181182 if (redundant [i ])
182183 continue ;
183184 for (j = filled = 0 ; j < cnt ; j ++ ) {
185+ uint32_t curr_generation ;
184186 if (i == j || redundant [j ])
185187 continue ;
186188 filled_index [filled ] = j ;
187189 work [filled ++ ] = array [j ];
188190
189- if (commit_graph_generation (array [j ]) < min_generation )
190- min_generation = commit_graph_generation (array [j ]);
191+ curr_generation = commit_graph_generation (array [j ]);
192+ if (curr_generation < min_generation )
193+ min_generation = curr_generation ;
191194 }
192195 common = paint_down_to_common (r , array [i ], filled ,
193196 work , min_generation );
@@ -316,23 +319,26 @@ int repo_in_merge_bases_many(struct repository *r, struct commit *commit,
316319{
317320 struct commit_list * bases ;
318321 int ret = 0 , i ;
319- uint32_t min_generation = GENERATION_NUMBER_INFINITY ;
322+ uint32_t generation , min_generation = GENERATION_NUMBER_INFINITY ;
320323
321324 if (repo_parse_commit (r , commit ))
322325 return ret ;
323326 for (i = 0 ; i < nr_reference ; i ++ ) {
324327 if (repo_parse_commit (r , reference [i ]))
325328 return ret ;
326- if (commit_graph_generation (reference [i ]) < min_generation )
327- min_generation = commit_graph_generation (reference [i ]);
329+
330+ generation = commit_graph_generation (reference [i ]);
331+ if (generation < min_generation )
332+ min_generation = generation ;
328333 }
329334
330- if (commit_graph_generation (commit ) > min_generation )
335+ generation = commit_graph_generation (commit );
336+ if (generation > min_generation )
331337 return ret ;
332338
333339 bases = paint_down_to_common (r , commit ,
334340 nr_reference , reference ,
335- commit_graph_generation ( commit ) );
341+ generation );
336342 if (commit -> object .flags & PARENT2 )
337343 ret = 1 ;
338344 clear_commit_marks (commit , all_flags );
@@ -490,10 +496,12 @@ static enum contains_result contains_tag_algo(struct commit *candidate,
490496 const struct commit_list * p ;
491497
492498 for (p = want ; p ; p = p -> next ) {
499+ uint32_t generation ;
493500 struct commit * c = p -> item ;
494501 load_commit_graph_info (the_repository , c );
495- if (commit_graph_generation (c ) < cutoff )
496- cutoff = commit_graph_generation (c );
502+ generation = commit_graph_generation (c );
503+ if (generation < cutoff )
504+ cutoff = generation ;
497505 }
498506
499507 result = contains_test (candidate , want , cache , cutoff );
@@ -544,9 +552,12 @@ static int compare_commits_by_gen(const void *_a, const void *_b)
544552 const struct commit * a = * (const struct commit * const * )_a ;
545553 const struct commit * b = * (const struct commit * const * )_b ;
546554
547- if (commit_graph_generation (a ) < commit_graph_generation (b ))
555+ uint32_t generation_a = commit_graph_generation (a );
556+ uint32_t generation_b = commit_graph_generation (b );
557+
558+ if (generation_a < generation_b )
548559 return -1 ;
549- if (commit_graph_generation ( a ) > commit_graph_generation ( b ) )
560+ if (generation_a > generation_b )
550561 return 1 ;
551562 return 0 ;
552563}
@@ -662,23 +673,27 @@ int can_all_from_reach(struct commit_list *from, struct commit_list *to,
662673 add_object_array (& from_iter -> item -> object , NULL , & from_objs );
663674
664675 if (!parse_commit (from_iter -> item )) {
676+ uint32_t generation ;
665677 if (from_iter -> item -> date < min_commit_date )
666678 min_commit_date = from_iter -> item -> date ;
667679
668- if (commit_graph_generation (from_iter -> item ) < min_generation )
669- min_generation = commit_graph_generation (from_iter -> item );
680+ generation = commit_graph_generation (from_iter -> item );
681+ if (generation < min_generation )
682+ min_generation = generation ;
670683 }
671684
672685 from_iter = from_iter -> next ;
673686 }
674687
675688 while (to_iter ) {
676689 if (!parse_commit (to_iter -> item )) {
690+ uint32_t generation ;
677691 if (to_iter -> item -> date < min_commit_date )
678692 min_commit_date = to_iter -> item -> date ;
679693
680- if (commit_graph_generation (to_iter -> item ) < min_generation )
681- min_generation = commit_graph_generation (to_iter -> item );
694+ generation = commit_graph_generation (to_iter -> item );
695+ if (generation < min_generation )
696+ min_generation = generation ;
682697 }
683698
684699 to_iter -> item -> object .flags |= PARENT2 ;
@@ -718,11 +733,13 @@ struct commit_list *get_reachable_subset(struct commit **from, int nr_from,
718733 struct prio_queue queue = { compare_commits_by_gen_then_commit_date };
719734
720735 for (item = to ; item < to_last ; item ++ ) {
736+ uint32_t generation ;
721737 struct commit * c = * item ;
722738
723739 parse_commit (c );
724- if (commit_graph_generation (c ) < min_generation )
725- min_generation = commit_graph_generation (c );
740+ generation = commit_graph_generation (c );
741+ if (generation < min_generation )
742+ min_generation = generation ;
726743
727744 if (!(c -> object .flags & PARENT1 )) {
728745 c -> object .flags |= PARENT1 ;
0 commit comments