@@ -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 find_basename_matches(struct diff_options *options,
765
766
int minimum_score ,
766
767
int num_src ,
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
@@ -855,7 +856,7 @@ static int find_basename_matches(struct diff_options *options,
855
856
856
857
/* Skip irrelevant sources */
857
858
if (relevant_sources &&
858
- !strset_contains (relevant_sources , filename ))
859
+ !strintmap_contains (relevant_sources , filename ))
859
860
continue ;
860
861
861
862
/* Find out if this basename is unique among sources */
@@ -981,7 +982,7 @@ static int find_renames(struct diff_score *mx,
981
982
int minimum_score ,
982
983
int copies ,
983
984
struct dir_rename_info * info ,
984
- struct strset * dirs_removed )
985
+ struct strintmap * dirs_removed )
985
986
{
986
987
int count = 0 , i ;
987
988
@@ -1006,7 +1007,7 @@ static int find_renames(struct diff_score *mx,
1006
1007
}
1007
1008
1008
1009
static void remove_unneeded_paths_from_src (int detecting_copies ,
1009
- struct strset * interesting )
1010
+ struct strintmap * interesting )
1010
1011
{
1011
1012
int i , new_num_src ;
1012
1013
@@ -1048,7 +1049,7 @@ static void remove_unneeded_paths_from_src(int detecting_copies,
1048
1049
continue ;
1049
1050
1050
1051
/* If we don't care about the source path, skip it */
1051
- if (interesting && !strset_contains (interesting , one -> path ))
1052
+ if (interesting && !strintmap_contains (interesting , one -> path ))
1052
1053
continue ;
1053
1054
1054
1055
if (new_num_src < i )
@@ -1061,8 +1062,8 @@ static void remove_unneeded_paths_from_src(int detecting_copies,
1061
1062
}
1062
1063
1063
1064
void diffcore_rename_extended (struct diff_options * options ,
1064
- struct strset * relevant_sources ,
1065
- struct strset * dirs_removed ,
1065
+ struct strintmap * relevant_sources ,
1066
+ struct strintmap * dirs_removed ,
1066
1067
struct strmap * dir_rename_count )
1067
1068
{
1068
1069
int detect_rename = options -> detect_rename ;
0 commit comments