@@ -371,7 +371,7 @@ struct dir_rename_info {
371
371
struct strintmap idx_map ;
372
372
struct strmap dir_rename_guess ;
373
373
struct strmap * dir_rename_count ;
374
- struct strset * relevant_source_dirs ;
374
+ struct strintmap * relevant_source_dirs ;
375
375
unsigned setup ;
376
376
};
377
377
@@ -429,7 +429,7 @@ static void increment_count(struct dir_rename_info *info,
429
429
}
430
430
431
431
static void update_dir_rename_counts (struct dir_rename_info * info ,
432
- struct strset * dirs_removed ,
432
+ struct strintmap * dirs_removed ,
433
433
const char * oldname ,
434
434
const char * newname )
435
435
{
@@ -464,7 +464,7 @@ static void update_dir_rename_counts(struct dir_rename_info *info,
464
464
/* Get old_dir, skip if its directory isn't relevant. */
465
465
dirname_munge (old_dir );
466
466
if (info -> relevant_source_dirs &&
467
- !strset_contains (info -> relevant_source_dirs , old_dir ))
467
+ !strintmap_contains (info -> relevant_source_dirs , old_dir ))
468
468
break ;
469
469
470
470
/* Get new_dir */
@@ -509,7 +509,7 @@ static void update_dir_rename_counts(struct dir_rename_info *info,
509
509
}
510
510
}
511
511
512
- if (strset_contains (dirs_removed , old_dir ))
512
+ if (strintmap_contains (dirs_removed , old_dir ))
513
513
increment_count (info , old_dir , new_dir );
514
514
else
515
515
break ;
@@ -527,8 +527,8 @@ static void update_dir_rename_counts(struct dir_rename_info *info,
527
527
}
528
528
529
529
static void initialize_dir_rename_info (struct dir_rename_info * info ,
530
- struct strset * relevant_sources ,
531
- struct strset * dirs_removed ,
530
+ struct strintmap * relevant_sources ,
531
+ struct strintmap * dirs_removed ,
532
532
struct strmap * dir_rename_count )
533
533
{
534
534
struct hashmap_iter iter ;
@@ -555,12 +555,13 @@ static void initialize_dir_rename_info(struct dir_rename_info *info,
555
555
info -> relevant_source_dirs = dirs_removed ; /* might be NULL */
556
556
} else {
557
557
info -> relevant_source_dirs = xmalloc (sizeof (struct strintmap ));
558
- strset_init (info -> relevant_source_dirs );
559
- strset_for_each_entry (relevant_sources , & iter , entry ) {
558
+ strintmap_init (info -> relevant_source_dirs , 0 /* unused */ );
559
+ strintmap_for_each_entry (relevant_sources , & iter , entry ) {
560
560
char * dirname = get_dirname (entry -> key );
561
561
if (!dirs_removed ||
562
- strset_contains (dirs_removed , dirname ))
563
- strset_add (info -> relevant_source_dirs , dirname );
562
+ strintmap_contains (dirs_removed , dirname ))
563
+ strintmap_set (info -> relevant_source_dirs ,
564
+ dirname , 0 /* value irrelevant */ );
564
565
free (dirname );
565
566
}
566
567
}
@@ -624,7 +625,7 @@ void partial_clear_dir_rename_count(struct strmap *dir_rename_count)
624
625
}
625
626
626
627
static void cleanup_dir_rename_info (struct dir_rename_info * info ,
627
- struct strset * dirs_removed ,
628
+ struct strintmap * dirs_removed ,
628
629
int keep_dir_rename_count )
629
630
{
630
631
struct hashmap_iter iter ;
@@ -644,7 +645,7 @@ static void cleanup_dir_rename_info(struct dir_rename_info *info,
644
645
/* relevant_source_dirs */
645
646
if (info -> relevant_source_dirs &&
646
647
info -> relevant_source_dirs != dirs_removed ) {
647
- strset_clear (info -> relevant_source_dirs );
648
+ strintmap_clear (info -> relevant_source_dirs );
648
649
FREE_AND_NULL (info -> relevant_source_dirs );
649
650
}
650
651
@@ -666,7 +667,7 @@ static void cleanup_dir_rename_info(struct dir_rename_info *info,
666
667
const char * source_dir = entry -> key ;
667
668
struct strintmap * counts = entry -> value ;
668
669
669
- if (!strset_contains (dirs_removed , source_dir )) {
670
+ if (!strintmap_contains (dirs_removed , source_dir )) {
670
671
string_list_append (& to_remove , source_dir );
671
672
strintmap_clear (counts );
672
673
continue ;
@@ -770,8 +771,8 @@ static int idx_possible_rename(char *filename, struct dir_rename_info *info)
770
771
static int find_basename_matches (struct diff_options * options ,
771
772
int minimum_score ,
772
773
struct dir_rename_info * info ,
773
- struct strset * relevant_sources ,
774
- struct strset * dirs_removed )
774
+ struct strintmap * relevant_sources ,
775
+ struct strintmap * dirs_removed )
775
776
{
776
777
/*
777
778
* When I checked in early 2020, over 76% of file renames in linux
@@ -863,7 +864,7 @@ static int find_basename_matches(struct diff_options *options,
863
864
864
865
/* Skip irrelevant sources */
865
866
if (relevant_sources &&
866
- !strset_contains (relevant_sources , filename ))
867
+ !strintmap_contains (relevant_sources , filename ))
867
868
continue ;
868
869
869
870
/*
@@ -994,7 +995,7 @@ static int find_renames(struct diff_score *mx,
994
995
int minimum_score ,
995
996
int copies ,
996
997
struct dir_rename_info * info ,
997
- struct strset * dirs_removed )
998
+ struct strintmap * dirs_removed )
998
999
{
999
1000
int count = 0 , i ;
1000
1001
@@ -1019,7 +1020,7 @@ static int find_renames(struct diff_score *mx,
1019
1020
}
1020
1021
1021
1022
static void remove_unneeded_paths_from_src (int detecting_copies ,
1022
- struct strset * interesting )
1023
+ struct strintmap * interesting )
1023
1024
{
1024
1025
int i , new_num_src ;
1025
1026
@@ -1061,7 +1062,7 @@ static void remove_unneeded_paths_from_src(int detecting_copies,
1061
1062
continue ;
1062
1063
1063
1064
/* If we don't care about the source path, skip it */
1064
- if (interesting && !strset_contains (interesting , one -> path ))
1065
+ if (interesting && !strintmap_contains (interesting , one -> path ))
1065
1066
continue ;
1066
1067
1067
1068
if (new_num_src < i )
@@ -1074,8 +1075,8 @@ static void remove_unneeded_paths_from_src(int detecting_copies,
1074
1075
}
1075
1076
1076
1077
void diffcore_rename_extended (struct diff_options * options ,
1077
- struct strset * relevant_sources ,
1078
- struct strset * dirs_removed ,
1078
+ struct strintmap * relevant_sources ,
1079
+ struct strintmap * dirs_removed ,
1079
1080
struct strmap * dir_rename_count )
1080
1081
{
1081
1082
int detect_rename = options -> detect_rename ;
0 commit comments