зеркало из https://github.com/microsoft/git.git
diffcore-rename: add function for clearing dir_rename_count
As we adjust the usage of dir_rename_count we want to have a function for clearing, or partially clearing it out. Add a partial_clear_dir_rename_count() function for this purpose. Reviewed-by: Derrick Stolee <dstolee@microsoft.com> Signed-off-by: Elijah Newren <newren@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Родитель
0c4fd732f0
Коммит
cd52e0050f
|
@ -528,6 +528,18 @@ static void initialize_dir_rename_info(struct dir_rename_info *info)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void partial_clear_dir_rename_count(struct strmap *dir_rename_count)
|
||||||
|
{
|
||||||
|
struct hashmap_iter iter;
|
||||||
|
struct strmap_entry *entry;
|
||||||
|
|
||||||
|
strmap_for_each_entry(dir_rename_count, &iter, entry) {
|
||||||
|
struct strintmap *counts = entry->value;
|
||||||
|
strintmap_clear(counts);
|
||||||
|
}
|
||||||
|
strmap_partial_clear(dir_rename_count, 1);
|
||||||
|
}
|
||||||
|
|
||||||
static void cleanup_dir_rename_info(struct dir_rename_info *info)
|
static void cleanup_dir_rename_info(struct dir_rename_info *info)
|
||||||
{
|
{
|
||||||
if (!info->setup)
|
if (!info->setup)
|
||||||
|
|
|
@ -161,6 +161,8 @@ struct diff_filepair *diff_queue(struct diff_queue_struct *,
|
||||||
struct diff_filespec *);
|
struct diff_filespec *);
|
||||||
void diff_q(struct diff_queue_struct *, struct diff_filepair *);
|
void diff_q(struct diff_queue_struct *, struct diff_filepair *);
|
||||||
|
|
||||||
|
void partial_clear_dir_rename_count(struct strmap *dir_rename_count);
|
||||||
|
|
||||||
void diffcore_break(struct repository *, int);
|
void diffcore_break(struct repository *, int);
|
||||||
void diffcore_rename(struct diff_options *);
|
void diffcore_rename(struct diff_options *);
|
||||||
void diffcore_rename_extended(struct diff_options *options,
|
void diffcore_rename_extended(struct diff_options *options,
|
||||||
|
|
12
merge-ort.c
12
merge-ort.c
|
@ -351,17 +351,11 @@ static void clear_or_reinit_internal_opts(struct merge_options_internal *opti,
|
||||||
|
|
||||||
/* Free memory used by various renames maps */
|
/* Free memory used by various renames maps */
|
||||||
for (i = MERGE_SIDE1; i <= MERGE_SIDE2; ++i) {
|
for (i = MERGE_SIDE1; i <= MERGE_SIDE2; ++i) {
|
||||||
struct hashmap_iter iter;
|
|
||||||
struct strmap_entry *entry;
|
|
||||||
|
|
||||||
strset_func(&renames->dirs_removed[i]);
|
strset_func(&renames->dirs_removed[i]);
|
||||||
|
|
||||||
strmap_for_each_entry(&renames->dir_rename_count[i],
|
partial_clear_dir_rename_count(&renames->dir_rename_count[i]);
|
||||||
&iter, entry) {
|
if (!reinitialize)
|
||||||
struct strintmap *counts = entry->value;
|
strmap_clear(&renames->dir_rename_count[i], 1);
|
||||||
strintmap_clear(counts);
|
|
||||||
}
|
|
||||||
strmap_func(&renames->dir_rename_count[i], 1);
|
|
||||||
|
|
||||||
strmap_func(&renames->dir_renames[i], 0);
|
strmap_func(&renames->dir_renames[i], 0);
|
||||||
}
|
}
|
||||||
|
|
Загрузка…
Ссылка в новой задаче