@@ -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 ;
@@ -554,12 +554,13 @@ static void initialize_dir_rename_info(struct dir_rename_info *info,
554
554
info -> relevant_source_dirs = dirs_removed ; /* might be NULL */
555
555
} else {
556
556
info -> relevant_source_dirs = xmalloc (sizeof (struct strintmap ));
557
- strset_init (info -> relevant_source_dirs );
558
- strset_for_each_entry (relevant_sources , & iter , entry ) {
557
+ strintmap_init (info -> relevant_source_dirs , 0 /* unused */ );
558
+ strintmap_for_each_entry (relevant_sources , & iter , entry ) {
559
559
char * dirname = get_dirname (entry -> key );
560
560
if (!dirs_removed ||
561
- strset_contains (dirs_removed , dirname ))
562
- strset_add (info -> relevant_source_dirs , dirname );
561
+ strintmap_contains (dirs_removed , dirname ))
562
+ strintmap_set (info -> relevant_source_dirs ,
563
+ dirname , 0 /* value irrelevant */ );
563
564
free (dirname );
564
565
}
565
566
}
@@ -623,7 +624,7 @@ void partial_clear_dir_rename_count(struct strmap *dir_rename_count)
623
624
}
624
625
625
626
static void cleanup_dir_rename_info (struct dir_rename_info * info ,
626
- struct strset * dirs_removed ,
627
+ struct strintmap * dirs_removed ,
627
628
int keep_dir_rename_count )
628
629
{
629
630
struct hashmap_iter iter ;
@@ -641,7 +642,7 @@ static void cleanup_dir_rename_info(struct dir_rename_info *info,
641
642
/* relevant_source_dirs */
642
643
if (info -> relevant_source_dirs &&
643
644
info -> relevant_source_dirs != dirs_removed ) {
644
- strset_clear (info -> relevant_source_dirs );
645
+ strintmap_clear (info -> relevant_source_dirs );
645
646
FREE_AND_NULL (info -> relevant_source_dirs );
646
647
}
647
648
@@ -663,7 +664,7 @@ static void cleanup_dir_rename_info(struct dir_rename_info *info,
663
664
const char * source_dir = entry -> key ;
664
665
struct strintmap * counts = entry -> value ;
665
666
666
- if (!strset_contains (dirs_removed , source_dir )) {
667
+ if (!strintmap_contains (dirs_removed , source_dir )) {
667
668
string_list_append (& to_remove , source_dir );
668
669
strintmap_clear (counts );
669
670
continue ;
@@ -765,8 +766,8 @@ static int idx_possible_rename(char *filename, struct dir_rename_info *info)
765
766
static int find_basename_matches (struct diff_options * options ,
766
767
int minimum_score ,
767
768
struct dir_rename_info * info ,
768
- struct strset * relevant_sources ,
769
- struct strset * dirs_removed )
769
+ struct strintmap * relevant_sources ,
770
+ struct strintmap * dirs_removed )
770
771
{
771
772
/*
772
773
* When I checked in early 2020, over 76% of file renames in linux
@@ -858,7 +859,7 @@ static int find_basename_matches(struct diff_options *options,
858
859
859
860
/* Skip irrelevant sources */
860
861
if (relevant_sources &&
861
- !strset_contains (relevant_sources , filename ))
862
+ !strintmap_contains (relevant_sources , filename ))
862
863
continue ;
863
864
864
865
/* Is this basename unique among remaining sources? */
@@ -984,7 +985,7 @@ static int find_renames(struct diff_score *mx,
984
985
int minimum_score ,
985
986
int copies ,
986
987
struct dir_rename_info * info ,
987
- struct strset * dirs_removed )
988
+ struct strintmap * dirs_removed )
988
989
{
989
990
int count = 0 , i ;
990
991
@@ -1009,7 +1010,7 @@ static int find_renames(struct diff_score *mx,
1009
1010
}
1010
1011
1011
1012
static void remove_unneeded_paths_from_src (int detecting_copies ,
1012
- struct strset * interesting )
1013
+ struct strintmap * interesting )
1013
1014
{
1014
1015
int i , new_num_src ;
1015
1016
@@ -1051,7 +1052,7 @@ static void remove_unneeded_paths_from_src(int detecting_copies,
1051
1052
continue ;
1052
1053
1053
1054
/* If we don't care about the source path, skip it */
1054
- if (interesting && !strset_contains (interesting , one -> path ))
1055
+ if (interesting && !strintmap_contains (interesting , one -> path ))
1055
1056
continue ;
1056
1057
1057
1058
if (new_num_src < i )
@@ -1064,8 +1065,8 @@ static void remove_unneeded_paths_from_src(int detecting_copies,
1064
1065
}
1065
1066
1066
1067
void diffcore_rename_extended (struct diff_options * options ,
1067
- struct strset * relevant_sources ,
1068
- struct strset * dirs_removed ,
1068
+ struct strintmap * relevant_sources ,
1069
+ struct strintmap * dirs_removed ,
1069
1070
struct strmap * dir_rename_count )
1070
1071
{
1071
1072
int detect_rename = options -> detect_rename ;
0 commit comments