28
28
#include "mailmap.h"
29
29
#include "gpg-interface.h"
30
30
#include "progress.h"
31
+ #include "commit-slab.h"
31
32
32
33
#define MAIL_DEFAULT_WRAP 72
33
34
@@ -1340,6 +1341,8 @@ static struct commit *get_base_commit(const char *base_commit,
1340
1341
return base ;
1341
1342
}
1342
1343
1344
+ define_commit_slab (commit_base , int );
1345
+
1343
1346
static void prepare_bases (struct base_tree_info * bases ,
1344
1347
struct commit * base ,
1345
1348
struct commit * * list ,
@@ -1348,11 +1351,13 @@ static void prepare_bases(struct base_tree_info *bases,
1348
1351
struct commit * commit ;
1349
1352
struct rev_info revs ;
1350
1353
struct diff_options diffopt ;
1354
+ struct commit_base commit_base ;
1351
1355
int i ;
1352
1356
1353
1357
if (!base )
1354
1358
return ;
1355
1359
1360
+ init_commit_base (& commit_base );
1356
1361
diff_setup (& diffopt );
1357
1362
diffopt .flags .recursive = 1 ;
1358
1363
diff_setup_done (& diffopt );
@@ -1365,7 +1370,7 @@ static void prepare_bases(struct base_tree_info *bases,
1365
1370
for (i = 0 ; i < total ; i ++ ) {
1366
1371
list [i ]-> object .flags &= ~UNINTERESTING ;
1367
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 ;
1369
1374
}
1370
1375
base -> object .flags |= UNINTERESTING ;
1371
1376
add_pending_object (& revs , & base -> object , "base" );
@@ -1379,7 +1384,7 @@ static void prepare_bases(struct base_tree_info *bases,
1379
1384
while ((commit = get_revision (& revs )) != NULL ) {
1380
1385
struct object_id oid ;
1381
1386
struct object_id * patch_id ;
1382
- if (commit -> util )
1387
+ if (* commit_base_at ( & commit_base , commit ) )
1383
1388
continue ;
1384
1389
if (commit_patch_id (commit , & diffopt , & oid , 0 ))
1385
1390
die (_ ("cannot get patch id" ));
@@ -1388,6 +1393,7 @@ static void prepare_bases(struct base_tree_info *bases,
1388
1393
oidcpy (patch_id , & oid );
1389
1394
bases -> nr_patch_id ++ ;
1390
1395
}
1396
+ clear_commit_base (& commit_base );
1391
1397
}
1392
1398
1393
1399
static void print_bases (struct base_tree_info * bases , FILE * file )
0 commit comments