@@ -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
{
@@ -458,7 +458,7 @@ static void update_dir_rename_counts(struct dir_rename_info *info,
458
458
/* Get old_dir, skip if its directory isn't relevant. */
459
459
dirname_munge (old_dir );
460
460
if (info -> relevant_source_dirs &&
461
- !strset_contains (info -> relevant_source_dirs , old_dir ))
461
+ !strintmap_contains (info -> relevant_source_dirs , old_dir ))
462
462
break ;
463
463
464
464
/* Get new_dir */
@@ -503,7 +503,7 @@ static void update_dir_rename_counts(struct dir_rename_info *info,
503
503
}
504
504
}
505
505
506
- if (strset_contains (dirs_removed , old_dir ))
506
+ if (strintmap_contains (dirs_removed , old_dir ))
507
507
increment_count (info , old_dir , new_dir );
508
508
else
509
509
break ;
@@ -521,8 +521,8 @@ static void update_dir_rename_counts(struct dir_rename_info *info,
521
521
}
522
522
523
523
static void initialize_dir_rename_info (struct dir_rename_info * info ,
524
- struct strset * relevant_sources ,
525
- struct strset * dirs_removed ,
524
+ struct strintmap * relevant_sources ,
525
+ struct strintmap * dirs_removed ,
526
526
struct strmap * dir_rename_count )
527
527
{
528
528
struct hashmap_iter iter ;
@@ -548,12 +548,13 @@ static void initialize_dir_rename_info(struct dir_rename_info *info,
548
548
info -> relevant_source_dirs = dirs_removed ; /* might be NULL */
549
549
} else {
550
550
info -> relevant_source_dirs = xmalloc (sizeof (struct strintmap ));
551
- strset_init (info -> relevant_source_dirs );
552
- strset_for_each_entry (relevant_sources , & iter , entry ) {
551
+ strintmap_init (info -> relevant_source_dirs , 0 /* unused */ );
552
+ strintmap_for_each_entry (relevant_sources , & iter , entry ) {
553
553
char * dirname = get_dirname (entry -> key );
554
554
if (!dirs_removed ||
555
- strset_contains (dirs_removed , dirname ))
556
- strset_add (info -> relevant_source_dirs , dirname );
555
+ strintmap_contains (dirs_removed , dirname ))
556
+ strintmap_set (info -> relevant_source_dirs ,
557
+ dirname , 0 /* value irrelevant */ );
557
558
free (dirname );
558
559
}
559
560
}
@@ -617,7 +618,7 @@ void partial_clear_dir_rename_count(struct strmap *dir_rename_count)
617
618
}
618
619
619
620
static void cleanup_dir_rename_info (struct dir_rename_info * info ,
620
- struct strset * dirs_removed ,
621
+ struct strintmap * dirs_removed ,
621
622
int keep_dir_rename_count )
622
623
{
623
624
struct hashmap_iter iter ;
@@ -635,7 +636,7 @@ static void cleanup_dir_rename_info(struct dir_rename_info *info,
635
636
/* relevant_source_dirs */
636
637
if (info -> relevant_source_dirs &&
637
638
info -> relevant_source_dirs != dirs_removed ) {
638
- strset_clear (info -> relevant_source_dirs );
639
+ strintmap_clear (info -> relevant_source_dirs );
639
640
FREE_AND_NULL (info -> relevant_source_dirs );
640
641
}
641
642
@@ -657,7 +658,7 @@ static void cleanup_dir_rename_info(struct dir_rename_info *info,
657
658
const char * source_dir = entry -> key ;
658
659
struct strintmap * counts = entry -> value ;
659
660
660
- if (!strset_contains (dirs_removed , source_dir )) {
661
+ if (!strintmap_contains (dirs_removed , source_dir )) {
661
662
string_list_append (& to_remove , source_dir );
662
663
strintmap_clear (counts );
663
664
continue ;
@@ -747,8 +748,8 @@ static int find_basename_matches(struct diff_options *options,
747
748
int minimum_score ,
748
749
int num_src ,
749
750
struct dir_rename_info * info ,
750
- struct strset * relevant_sources ,
751
- struct strset * dirs_removed )
751
+ struct strintmap * relevant_sources ,
752
+ struct strintmap * dirs_removed )
752
753
{
753
754
/*
754
755
* When I checked in early 2020, over 76% of file renames in linux
@@ -837,7 +838,7 @@ static int find_basename_matches(struct diff_options *options,
837
838
838
839
/* Skip irrelevant sources */
839
840
if (relevant_sources &&
840
- !strset_contains (relevant_sources , filename ))
841
+ !strintmap_contains (relevant_sources , filename ))
841
842
continue ;
842
843
843
844
/* Find out if this basename is unique among sources */
@@ -963,7 +964,7 @@ static int find_renames(struct diff_score *mx,
963
964
int minimum_score ,
964
965
int copies ,
965
966
struct dir_rename_info * info ,
966
- struct strset * dirs_removed )
967
+ struct strintmap * dirs_removed )
967
968
{
968
969
int count = 0 , i ;
969
970
@@ -988,7 +989,7 @@ static int find_renames(struct diff_score *mx,
988
989
}
989
990
990
991
static void remove_unneeded_paths_from_src (int detecting_copies ,
991
- struct strset * interesting )
992
+ struct strintmap * interesting )
992
993
{
993
994
int i , new_num_src ;
994
995
@@ -1030,7 +1031,7 @@ static void remove_unneeded_paths_from_src(int detecting_copies,
1030
1031
continue ;
1031
1032
1032
1033
/* If we don't care about the source path, skip it */
1033
- if (interesting && !strset_contains (interesting , one -> path ))
1034
+ if (interesting && !strintmap_contains (interesting , one -> path ))
1034
1035
continue ;
1035
1036
1036
1037
if (new_num_src < i )
@@ -1043,8 +1044,8 @@ static void remove_unneeded_paths_from_src(int detecting_copies,
1043
1044
}
1044
1045
1045
1046
void diffcore_rename_extended (struct diff_options * options ,
1046
- struct strset * relevant_sources ,
1047
- struct strset * dirs_removed ,
1047
+ struct strintmap * relevant_sources ,
1048
+ struct strintmap * dirs_removed ,
1048
1049
struct strmap * dir_rename_count )
1049
1050
{
1050
1051
int detect_rename = options -> detect_rename ;
0 commit comments