log: use commit-slab in prepare_bases() instead of commit->util

It's done so that commit->util can be removed. See more explanation in the commit that removes commit->util. Signed-off-by: Junio C Hamano <gitster@pobox.com>

Nguyễn Thái Ngọc Duy committed May 19, 2018 at 07:28 UTC 7b680d32f3e3e2469733a7668fad2253bb4aeb4d
1 file changed +8 -2
builtin/log.c
+8 -2
@@ -28,6 +28,7 @@
28 #include "mailmap.h"
29 #include "gpg-interface.h"
30 #include "progress.h"
31 +#include "commit-slab.h"
32
33 #define MAIL_DEFAULT_WRAP 72
34
@@ -1340,6 +1341,8 @@ static struct commit *get_base_commit(const char *base_commit,
1341 return base;
1342 }
1343
1344 +define_commit_slab(commit_base, int);
1345 +
1346 static void prepare_bases(struct base_tree_info *bases,
1347 struct commit *base,
1348 struct commit **list,
@@ -1348,11 +1351,13 @@ static void prepare_bases(struct base_tree_info *bases,
1351 struct commit *commit;
1352 struct rev_info revs;
1353 struct diff_options diffopt;
1354 + struct commit_base commit_base;
1355 int i;
1356
1357 if (!base)
1358 return;
1359
1360 + init_commit_base(&commit_base);
1361 diff_setup(&diffopt);
1362 diffopt.flags.recursive = 1;
1363 diff_setup_done(&diffopt);
@@ -1365,7 +1370,7 @@ static void prepare_bases(struct base_tree_info *bases,
1370 for (i = 0; i < total; i++) {
1371 list[i]->object.flags &= ~UNINTERESTING;
1372 add_pending_object(&revs, &list[i]->object, "rev_list");
1368 - list[i]->util = (void *)1;
1373 + *commit_base_at(&commit_base, list[i]) = 1;
1374 }
1375 base->object.flags |= UNINTERESTING;
1376 add_pending_object(&revs, &base->object, "base");
@@ -1379,7 +1384,7 @@ static void prepare_bases(struct base_tree_info *bases,
1384 while ((commit = get_revision(&revs)) != NULL) {
1385 struct object_id oid;
1386 struct object_id *patch_id;
1382 - if (commit->util)
1387 + if (*commit_base_at(&commit_base, commit))
1388 continue;
1389 if (commit_patch_id(commit, &diffopt, &oid, 0))
1390 die(_("cannot get patch id"));
@@ -1388,6 +1393,7 @@ static void prepare_bases(struct base_tree_info *bases,
1393 oidcpy(patch_id, &oid);
1394 bases->nr_patch_id++;
1395 }
1396 + clear_commit_base(&commit_base);
1397 }
1398
1399 static void print_bases(struct base_tree_info *bases, FILE *file)