diff options
Diffstat (limited to 'diffcore-rename.c')
-rw-r--r-- | diffcore-rename.c | 23 |
1 files changed, 11 insertions, 12 deletions
diff --git a/diffcore-rename.c b/diffcore-rename.c index 786f389498..245e999fe5 100644 --- a/diffcore-rename.c +++ b/diffcore-rename.c @@ -391,21 +391,19 @@ static int too_many_rename_candidates(int num_create, * growing larger than a "rename_limit" square matrix, ie: * * num_create * num_src > rename_limit * rename_limit - * - * but handles the potential overflow case specially (and we - * assume at least 32-bit integers) */ - if (rename_limit <= 0 || rename_limit > 32767) + if (rename_limit <= 0) rename_limit = 32767; if ((num_create <= rename_limit || num_src <= rename_limit) && - (num_create * num_src <= rename_limit * rename_limit)) + ((uint64_t)num_create * (uint64_t)num_src + <= (uint64_t)rename_limit * (uint64_t)rename_limit)) return 0; options->needed_rename_limit = num_src > num_create ? num_src : num_create; /* Are we running under -C -C? */ - if (!DIFF_OPT_TST(options, FIND_COPIES_HARDER)) + if (!options->flags.find_copies_harder) return 1; /* Would we bust the limit if we were running under -C? */ @@ -415,7 +413,8 @@ static int too_many_rename_candidates(int num_create, num_src++; } if ((num_create <= rename_limit || num_src <= rename_limit) && - (num_create * num_src <= rename_limit * rename_limit)) + ((uint64_t)num_create * (uint64_t)num_src + <= (uint64_t)rename_limit * (uint64_t)rename_limit)) return 2; return 1; } @@ -463,7 +462,7 @@ void diffcore_rename(struct diff_options *options) else if (options->single_follow && strcmp(options->single_follow, p->two->path)) continue; /* not interested */ - else if (!DIFF_OPT_TST(options, RENAME_EMPTY) && + else if (!options->flags.rename_empty && is_empty_blob_oid(&p->two->oid)) continue; else if (add_rename_dst(p->two) < 0) { @@ -473,7 +472,7 @@ void diffcore_rename(struct diff_options *options) goto cleanup; } } - else if (!DIFF_OPT_TST(options, RENAME_EMPTY) && + else if (!options->flags.rename_empty && is_empty_blob_oid(&p->one->oid)) continue; else if (!DIFF_PAIR_UNMERGED(p) && !DIFF_FILE_VALID(p->two)) { @@ -532,9 +531,9 @@ void diffcore_rename(struct diff_options *options) } if (options->show_rename_progress) { - progress = start_progress_delay( + progress = start_delayed_progress( _("Performing inexact rename detection"), - rename_dst_nr * rename_src_nr, 50, 1); + (uint64_t)rename_dst_nr * (uint64_t)rename_src_nr); } mx = xcalloc(st_mult(NUM_CANDIDATE_PER_DST, num_create), sizeof(*mx)); @@ -571,7 +570,7 @@ void diffcore_rename(struct diff_options *options) diff_free_filespec_blob(two); } dst_cnt++; - display_progress(progress, (i+1)*rename_src_nr); + display_progress(progress, (uint64_t)(i+1)*(uint64_t)rename_src_nr); } stop_progress(&progress); |