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)