Merge branch 'ps/more-sign-compare'
More -Wsign-compare fixes. * ps/more-sign-compare: sign-compare: avoid comparing ptrdiff with an int/unsigned commit-reach: use `size_t` to track indices when computing merge bases shallow: fix -Wsign-compare warnings builtin/log: fix remaining -Wsign-compare warnings builtin/log: use `size_t` to track indices commit-reach: use `size_t` to track indices in `get_reachable_subset()` commit-reach: use `size_t` to track indices in `remove_redundant()` commit-reach: fix type of `min_commit_date` commit-reach: fix index used to loop through unsigned integer prio-queue: fix type of `insertion_ctr`maint
commit
564b907c8a
11
bisect.c
11
bisect.c
|
|
@ -780,10 +780,10 @@ static struct commit *get_commit_reference(struct repository *r,
|
|||
}
|
||||
|
||||
static struct commit **get_bad_and_good_commits(struct repository *r,
|
||||
int *rev_nr)
|
||||
size_t *rev_nr)
|
||||
{
|
||||
struct commit **rev;
|
||||
int i, n = 0;
|
||||
size_t i, n = 0;
|
||||
|
||||
ALLOC_ARRAY(rev, 1 + good_revs.nr);
|
||||
rev[n++] = get_commit_reference(r, current_bad_oid);
|
||||
|
|
@ -855,7 +855,7 @@ static void handle_skipped_merge_base(const struct object_id *mb)
|
|||
* for early success, this will be converted back to 0 in
|
||||
* check_good_are_ancestors_of_bad().
|
||||
*/
|
||||
static enum bisect_error check_merge_bases(int rev_nr, struct commit **rev, int no_checkout)
|
||||
static enum bisect_error check_merge_bases(size_t rev_nr, struct commit **rev, int no_checkout)
|
||||
{
|
||||
enum bisect_error res = BISECT_OK;
|
||||
struct commit_list *result = NULL;
|
||||
|
|
@ -887,7 +887,7 @@ static enum bisect_error check_merge_bases(int rev_nr, struct commit **rev, int
|
|||
return res;
|
||||
}
|
||||
|
||||
static int check_ancestors(struct repository *r, int rev_nr,
|
||||
static int check_ancestors(struct repository *r, size_t rev_nr,
|
||||
struct commit **rev, const char *prefix)
|
||||
{
|
||||
struct strvec rev_argv = STRVEC_INIT;
|
||||
|
|
@ -922,7 +922,8 @@ static enum bisect_error check_good_are_ancestors_of_bad(struct repository *r,
|
|||
{
|
||||
char *filename;
|
||||
struct stat st;
|
||||
int fd, rev_nr;
|
||||
int fd;
|
||||
size_t rev_nr;
|
||||
enum bisect_error res = BISECT_OK;
|
||||
struct commit **rev;
|
||||
|
||||
|
|
|
|||
|
|
@ -6,7 +6,6 @@
|
|||
*/
|
||||
|
||||
#define USE_THE_REPOSITORY_VARIABLE
|
||||
#define DISABLE_SIGN_COMPARE_WARNINGS
|
||||
|
||||
#include "builtin.h"
|
||||
#include "abspath.h"
|
||||
|
|
@ -209,7 +208,6 @@ static void cmd_log_init_defaults(struct rev_info *rev,
|
|||
|
||||
static void set_default_decoration_filter(struct decoration_filter *decoration_filter)
|
||||
{
|
||||
int i;
|
||||
char *value = NULL;
|
||||
struct string_list *include = decoration_filter->include_ref_pattern;
|
||||
const struct string_list *config_exclude;
|
||||
|
|
@ -243,7 +241,7 @@ static void set_default_decoration_filter(struct decoration_filter *decoration_f
|
|||
* No command-line or config options were given, so
|
||||
* populate with sensible defaults.
|
||||
*/
|
||||
for (i = 0; i < ARRAY_SIZE(ref_namespace); i++) {
|
||||
for (size_t i = 0; i < ARRAY_SIZE(ref_namespace); i++) {
|
||||
if (!ref_namespace[i].decoration)
|
||||
continue;
|
||||
|
||||
|
|
@ -717,14 +715,14 @@ static int show_tag_object(const struct object_id *oid, struct rev_info *rev)
|
|||
unsigned long size;
|
||||
enum object_type type;
|
||||
char *buf = repo_read_object_file(the_repository, oid, &type, &size);
|
||||
int offset = 0;
|
||||
unsigned long offset = 0;
|
||||
|
||||
if (!buf)
|
||||
return error(_("could not read object %s"), oid_to_hex(oid));
|
||||
|
||||
assert(type == OBJ_TAG);
|
||||
while (offset < size && buf[offset] != '\n') {
|
||||
int new_offset = offset + 1;
|
||||
unsigned long new_offset = offset + 1;
|
||||
const char *ident;
|
||||
while (new_offset < size && buf[new_offset++] != '\n')
|
||||
; /* do nothing */
|
||||
|
|
@ -1316,24 +1314,25 @@ static void print_signature(const char *signature, FILE *file)
|
|||
|
||||
static char *find_branch_name(struct rev_info *rev)
|
||||
{
|
||||
int i, positive = -1;
|
||||
struct object_id branch_oid;
|
||||
const struct object_id *tip_oid;
|
||||
const char *ref, *v;
|
||||
char *full_ref, *branch = NULL;
|
||||
int interesting_found = 0;
|
||||
size_t idx;
|
||||
|
||||
for (i = 0; i < rev->cmdline.nr; i++) {
|
||||
for (size_t i = 0; i < rev->cmdline.nr; i++) {
|
||||
if (rev->cmdline.rev[i].flags & UNINTERESTING)
|
||||
continue;
|
||||
if (positive < 0)
|
||||
positive = i;
|
||||
else
|
||||
if (interesting_found)
|
||||
return NULL;
|
||||
interesting_found = 1;
|
||||
idx = i;
|
||||
}
|
||||
if (positive < 0)
|
||||
if (!interesting_found)
|
||||
return NULL;
|
||||
ref = rev->cmdline.rev[positive].name;
|
||||
tip_oid = &rev->cmdline.rev[positive].item->oid;
|
||||
ref = rev->cmdline.rev[idx].name;
|
||||
tip_oid = &rev->cmdline.rev[idx].item->oid;
|
||||
if (repo_dwim_ref(the_repository, ref, strlen(ref), &branch_oid,
|
||||
&full_ref, 0) &&
|
||||
skip_prefix(full_ref, "refs/heads/", &v) &&
|
||||
|
|
@ -1746,11 +1745,12 @@ struct base_tree_info {
|
|||
|
||||
static struct commit *get_base_commit(const struct format_config *cfg,
|
||||
struct commit **list,
|
||||
int total)
|
||||
size_t total)
|
||||
{
|
||||
struct commit *base = NULL;
|
||||
struct commit **rev;
|
||||
int i = 0, rev_nr = 0, auto_select, die_on_failure, ret;
|
||||
int auto_select, die_on_failure, ret;
|
||||
size_t i = 0, rev_nr = 0;
|
||||
|
||||
switch (cfg->auto_base) {
|
||||
case AUTO_BASE_NEVER:
|
||||
|
|
@ -1885,13 +1885,12 @@ define_commit_slab(commit_base, int);
|
|||
static void prepare_bases(struct base_tree_info *bases,
|
||||
struct commit *base,
|
||||
struct commit **list,
|
||||
int total)
|
||||
size_t total)
|
||||
{
|
||||
struct commit *commit;
|
||||
struct rev_info revs;
|
||||
struct diff_options diffopt;
|
||||
struct commit_base commit_base;
|
||||
int i;
|
||||
|
||||
if (!base)
|
||||
return;
|
||||
|
|
@ -1906,7 +1905,7 @@ static void prepare_bases(struct base_tree_info *bases,
|
|||
repo_init_revisions(the_repository, &revs, NULL);
|
||||
revs.max_parents = 1;
|
||||
revs.topo_order = 1;
|
||||
for (i = 0; i < total; i++) {
|
||||
for (size_t i = 0; i < total; i++) {
|
||||
list[i]->object.flags &= ~UNINTERESTING;
|
||||
add_pending_object(&revs, &list[i]->object, "rev_list");
|
||||
*commit_base_at(&commit_base, list[i]) = 1;
|
||||
|
|
@ -2007,7 +2006,7 @@ int cmd_format_patch(int argc,
|
|||
struct rev_info rev;
|
||||
char *to_free = NULL;
|
||||
struct setup_revision_opt s_r_opt;
|
||||
int nr = 0, total, i;
|
||||
size_t nr = 0, total, i;
|
||||
int use_stdout = 0;
|
||||
int start_number = -1;
|
||||
int just_numbers = 0;
|
||||
|
|
@ -2183,7 +2182,7 @@ int cmd_format_patch(int argc,
|
|||
fmt_patch_suffix = cfg.fmt_patch_suffix;
|
||||
|
||||
/* Make sure "0000-$sub.patch" gives non-negative length for $sub */
|
||||
if (cfg.log.fmt_patch_name_max <= strlen("0000-") + strlen(fmt_patch_suffix))
|
||||
if (cfg.log.fmt_patch_name_max <= cast_size_t_to_int(strlen("0000-") + strlen(fmt_patch_suffix)))
|
||||
cfg.log.fmt_patch_name_max = strlen("0000-") + strlen(fmt_patch_suffix);
|
||||
|
||||
if (cover_from_description_arg)
|
||||
|
|
@ -2500,11 +2499,14 @@ int cmd_format_patch(int argc,
|
|||
|
||||
if (show_progress)
|
||||
progress = start_delayed_progress(_("Generating patches"), total);
|
||||
while (0 <= --nr) {
|
||||
for (i = 0; i < nr; i++) {
|
||||
size_t idx = nr - i - 1;
|
||||
int shown;
|
||||
display_progress(progress, total - nr);
|
||||
commit = list[nr];
|
||||
rev.nr = total - nr + (start_number - 1);
|
||||
|
||||
display_progress(progress, total - idx);
|
||||
commit = list[idx];
|
||||
rev.nr = total - idx + (start_number - 1);
|
||||
|
||||
/* Make the second and subsequent mails replies to the first */
|
||||
if (cfg.thread) {
|
||||
/* Have we already had a message ID? */
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
#include "parse-options.h"
|
||||
#include "commit-reach.h"
|
||||
|
||||
static int show_merge_base(struct commit **rev, int rev_nr, int show_all)
|
||||
static int show_merge_base(struct commit **rev, size_t rev_nr, int show_all)
|
||||
{
|
||||
struct commit_list *result = NULL, *r;
|
||||
|
||||
|
|
@ -149,7 +149,7 @@ int cmd_merge_base(int argc,
|
|||
struct repository *repo UNUSED)
|
||||
{
|
||||
struct commit **rev;
|
||||
int rev_nr = 0;
|
||||
size_t rev_nr = 0;
|
||||
int show_all = 0;
|
||||
int cmdmode = 0;
|
||||
int ret;
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
#define USE_THE_REPOSITORY_VARIABLE
|
||||
#define DISABLE_SIGN_COMPARE_WARNINGS
|
||||
|
||||
#include "git-compat-util.h"
|
||||
#include "commit.h"
|
||||
|
|
@ -42,8 +41,7 @@ static int compare_commits_by_gen(const void *_a, const void *_b)
|
|||
|
||||
static int queue_has_nonstale(struct prio_queue *queue)
|
||||
{
|
||||
int i;
|
||||
for (i = 0; i < queue->nr; i++) {
|
||||
for (size_t i = 0; i < queue->nr; i++) {
|
||||
struct commit *commit = queue->array[i].data;
|
||||
if (!(commit->object.flags & STALE))
|
||||
return 1;
|
||||
|
|
@ -213,12 +211,13 @@ int get_octopus_merge_bases(struct commit_list *in, struct commit_list **result)
|
|||
}
|
||||
|
||||
static int remove_redundant_no_gen(struct repository *r,
|
||||
struct commit **array, int cnt)
|
||||
struct commit **array,
|
||||
size_t cnt, size_t *dedup_cnt)
|
||||
{
|
||||
struct commit **work;
|
||||
unsigned char *redundant;
|
||||
int *filled_index;
|
||||
int i, j, filled;
|
||||
size_t *filled_index;
|
||||
size_t i, j, filled;
|
||||
|
||||
CALLOC_ARRAY(work, cnt);
|
||||
redundant = xcalloc(cnt, 1);
|
||||
|
|
@ -268,20 +267,22 @@ static int remove_redundant_no_gen(struct repository *r,
|
|||
for (i = filled = 0; i < cnt; i++)
|
||||
if (!redundant[i])
|
||||
array[filled++] = work[i];
|
||||
*dedup_cnt = filled;
|
||||
free(work);
|
||||
free(redundant);
|
||||
free(filled_index);
|
||||
return filled;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int remove_redundant_with_gen(struct repository *r,
|
||||
struct commit **array, int cnt)
|
||||
struct commit **array, size_t cnt,
|
||||
size_t *dedup_cnt)
|
||||
{
|
||||
int i, count_non_stale = 0, count_still_independent = cnt;
|
||||
size_t i, count_non_stale = 0, count_still_independent = cnt;
|
||||
timestamp_t min_generation = GENERATION_NUMBER_INFINITY;
|
||||
struct commit **walk_start, **sorted;
|
||||
size_t walk_start_nr = 0, walk_start_alloc = cnt;
|
||||
int min_gen_pos = 0;
|
||||
size_t min_gen_pos = 0;
|
||||
|
||||
/*
|
||||
* Sort the input by generation number, ascending. This allows
|
||||
|
|
@ -327,12 +328,12 @@ static int remove_redundant_with_gen(struct repository *r,
|
|||
* terminate early. Otherwise, we will do the same amount of work
|
||||
* as before.
|
||||
*/
|
||||
for (i = walk_start_nr - 1; i >= 0 && count_still_independent > 1; i--) {
|
||||
for (i = walk_start_nr; i && count_still_independent > 1; i--) {
|
||||
/* push the STALE bits up to min generation */
|
||||
struct commit_list *stack = NULL;
|
||||
|
||||
commit_list_insert(walk_start[i], &stack);
|
||||
walk_start[i]->object.flags |= STALE;
|
||||
commit_list_insert(walk_start[i - 1], &stack);
|
||||
walk_start[i - 1]->object.flags |= STALE;
|
||||
|
||||
while (stack) {
|
||||
struct commit_list *parents;
|
||||
|
|
@ -389,10 +390,12 @@ static int remove_redundant_with_gen(struct repository *r,
|
|||
clear_commit_marks_many(walk_start_nr, walk_start, STALE);
|
||||
free(walk_start);
|
||||
|
||||
return count_non_stale;
|
||||
*dedup_cnt = count_non_stale;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int remove_redundant(struct repository *r, struct commit **array, int cnt)
|
||||
static int remove_redundant(struct repository *r, struct commit **array,
|
||||
size_t cnt, size_t *dedup_cnt)
|
||||
{
|
||||
/*
|
||||
* Some commit in the array may be an ancestor of
|
||||
|
|
@ -402,31 +405,30 @@ static int remove_redundant(struct repository *r, struct commit **array, int cnt
|
|||
* that number.
|
||||
*/
|
||||
if (generation_numbers_enabled(r)) {
|
||||
int i;
|
||||
|
||||
/*
|
||||
* If we have a single commit with finite generation
|
||||
* number, then the _with_gen algorithm is preferred.
|
||||
*/
|
||||
for (i = 0; i < cnt; i++) {
|
||||
for (size_t i = 0; i < cnt; i++) {
|
||||
if (commit_graph_generation(array[i]) < GENERATION_NUMBER_INFINITY)
|
||||
return remove_redundant_with_gen(r, array, cnt);
|
||||
return remove_redundant_with_gen(r, array, cnt, dedup_cnt);
|
||||
}
|
||||
}
|
||||
|
||||
return remove_redundant_no_gen(r, array, cnt);
|
||||
return remove_redundant_no_gen(r, array, cnt, dedup_cnt);
|
||||
}
|
||||
|
||||
static int get_merge_bases_many_0(struct repository *r,
|
||||
struct commit *one,
|
||||
int n,
|
||||
size_t n,
|
||||
struct commit **twos,
|
||||
int cleanup,
|
||||
struct commit_list **result)
|
||||
{
|
||||
struct commit_list *list;
|
||||
struct commit **rslt;
|
||||
int cnt, i;
|
||||
size_t cnt, i;
|
||||
int ret;
|
||||
|
||||
if (merge_bases_many(r, one, n, twos, result) < 0)
|
||||
return -1;
|
||||
|
|
@ -453,8 +455,8 @@ static int get_merge_bases_many_0(struct repository *r,
|
|||
clear_commit_marks(one, all_flags);
|
||||
clear_commit_marks_many(n, twos, all_flags);
|
||||
|
||||
cnt = remove_redundant(r, rslt, cnt);
|
||||
if (cnt < 0) {
|
||||
ret = remove_redundant(r, rslt, cnt, &cnt);
|
||||
if (ret < 0) {
|
||||
free(rslt);
|
||||
return -1;
|
||||
}
|
||||
|
|
@ -466,7 +468,7 @@ static int get_merge_bases_many_0(struct repository *r,
|
|||
|
||||
int repo_get_merge_bases_many(struct repository *r,
|
||||
struct commit *one,
|
||||
int n,
|
||||
size_t n,
|
||||
struct commit **twos,
|
||||
struct commit_list **result)
|
||||
{
|
||||
|
|
@ -475,7 +477,7 @@ int repo_get_merge_bases_many(struct repository *r,
|
|||
|
||||
int repo_get_merge_bases_many_dirty(struct repository *r,
|
||||
struct commit *one,
|
||||
int n,
|
||||
size_t n,
|
||||
struct commit **twos,
|
||||
struct commit_list **result)
|
||||
{
|
||||
|
|
@ -583,7 +585,8 @@ struct commit_list *reduce_heads(struct commit_list *heads)
|
|||
struct commit_list *p;
|
||||
struct commit_list *result = NULL, **tail = &result;
|
||||
struct commit **array;
|
||||
int num_head, i;
|
||||
size_t num_head, i;
|
||||
int ret;
|
||||
|
||||
if (!heads)
|
||||
return NULL;
|
||||
|
|
@ -604,11 +607,13 @@ struct commit_list *reduce_heads(struct commit_list *heads)
|
|||
p->item->object.flags &= ~STALE;
|
||||
}
|
||||
}
|
||||
num_head = remove_redundant(the_repository, array, num_head);
|
||||
if (num_head < 0) {
|
||||
|
||||
ret = remove_redundant(the_repository, array, num_head, &num_head);
|
||||
if (ret < 0) {
|
||||
free(array);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
for (i = 0; i < num_head; i++)
|
||||
tail = &commit_list_insert(array[i], tail)->next;
|
||||
free(array);
|
||||
|
|
@ -781,12 +786,12 @@ int commit_contains(struct ref_filter *filter, struct commit *commit,
|
|||
int can_all_from_reach_with_flag(struct object_array *from,
|
||||
unsigned int with_flag,
|
||||
unsigned int assign_flag,
|
||||
time_t min_commit_date,
|
||||
timestamp_t min_commit_date,
|
||||
timestamp_t min_generation)
|
||||
{
|
||||
struct commit **list = NULL;
|
||||
int i;
|
||||
int nr_commits;
|
||||
size_t i;
|
||||
size_t nr_commits;
|
||||
int result = 1;
|
||||
|
||||
ALLOC_ARRAY(list, from->nr);
|
||||
|
|
@ -884,9 +889,9 @@ int can_all_from_reach(struct commit_list *from, struct commit_list *to,
|
|||
int cutoff_by_min_date)
|
||||
{
|
||||
struct object_array from_objs = OBJECT_ARRAY_INIT;
|
||||
time_t min_commit_date = cutoff_by_min_date ? from->item->date : 0;
|
||||
struct commit_list *from_iter = from, *to_iter = to;
|
||||
int result;
|
||||
timestamp_t min_commit_date = cutoff_by_min_date ? from->item->date : 0;
|
||||
timestamp_t min_generation = GENERATION_NUMBER_INFINITY;
|
||||
|
||||
while (from_iter) {
|
||||
|
|
@ -938,8 +943,8 @@ int can_all_from_reach(struct commit_list *from, struct commit_list *to,
|
|||
return result;
|
||||
}
|
||||
|
||||
struct commit_list *get_reachable_subset(struct commit **from, int nr_from,
|
||||
struct commit **to, int nr_to,
|
||||
struct commit_list *get_reachable_subset(struct commit **from, size_t nr_from,
|
||||
struct commit **to, size_t nr_to,
|
||||
unsigned int reachable_flag)
|
||||
{
|
||||
struct commit **item;
|
||||
|
|
|
|||
|
|
@ -14,12 +14,12 @@ int repo_get_merge_bases(struct repository *r,
|
|||
struct commit *rev2,
|
||||
struct commit_list **result);
|
||||
int repo_get_merge_bases_many(struct repository *r,
|
||||
struct commit *one, int n,
|
||||
struct commit *one, size_t n,
|
||||
struct commit **twos,
|
||||
struct commit_list **result);
|
||||
/* To be used only when object flags after this call no longer matter */
|
||||
int repo_get_merge_bases_many_dirty(struct repository *r,
|
||||
struct commit *one, int n,
|
||||
struct commit *one, size_t n,
|
||||
struct commit **twos,
|
||||
struct commit_list **result);
|
||||
|
||||
|
|
@ -81,7 +81,7 @@ int commit_contains(struct ref_filter *filter, struct commit *commit,
|
|||
int can_all_from_reach_with_flag(struct object_array *from,
|
||||
unsigned int with_flag,
|
||||
unsigned int assign_flag,
|
||||
time_t min_commit_date,
|
||||
timestamp_t min_commit_date,
|
||||
timestamp_t min_generation);
|
||||
int can_all_from_reach(struct commit_list *from, struct commit_list *to,
|
||||
int commit_date_cutoff);
|
||||
|
|
@ -95,8 +95,8 @@ int can_all_from_reach(struct commit_list *from, struct commit_list *to,
|
|||
* This method uses the PARENT1 and PARENT2 flags during its operation,
|
||||
* so be sure these flags are not set before calling the method.
|
||||
*/
|
||||
struct commit_list *get_reachable_subset(struct commit **from, int nr_from,
|
||||
struct commit **to, int nr_to,
|
||||
struct commit_list *get_reachable_subset(struct commit **from, size_t nr_from,
|
||||
struct commit **to, size_t nr_to,
|
||||
unsigned int reachable_flag);
|
||||
|
||||
struct ahead_behind_count {
|
||||
|
|
|
|||
4
commit.c
4
commit.c
|
|
@ -778,11 +778,11 @@ static void clear_commit_marks_1(struct commit_list **plist,
|
|||
}
|
||||
}
|
||||
|
||||
void clear_commit_marks_many(int nr, struct commit **commit, unsigned int mark)
|
||||
void clear_commit_marks_many(size_t nr, struct commit **commit, unsigned int mark)
|
||||
{
|
||||
struct commit_list *list = NULL;
|
||||
|
||||
while (nr--) {
|
||||
for (size_t i = 0; i < nr; i++) {
|
||||
clear_commit_marks_1(&list, *commit, mark);
|
||||
commit++;
|
||||
}
|
||||
|
|
|
|||
2
commit.h
2
commit.h
|
|
@ -210,7 +210,7 @@ struct commit *pop_most_recent_commit(struct commit_list **list,
|
|||
struct commit *pop_commit(struct commit_list **stack);
|
||||
|
||||
void clear_commit_marks(struct commit *commit, unsigned int mark);
|
||||
void clear_commit_marks_many(int nr, struct commit **commit, unsigned int mark);
|
||||
void clear_commit_marks_many(size_t nr, struct commit **commit, unsigned int mark);
|
||||
|
||||
|
||||
enum rev_sort_order {
|
||||
|
|
|
|||
|
|
@ -22,13 +22,13 @@
|
|||
typedef int (*prio_queue_compare_fn)(const void *one, const void *two, void *cb_data);
|
||||
|
||||
struct prio_queue_entry {
|
||||
unsigned ctr;
|
||||
size_t ctr;
|
||||
void *data;
|
||||
};
|
||||
|
||||
struct prio_queue {
|
||||
prio_queue_compare_fn compare;
|
||||
unsigned insertion_ctr;
|
||||
size_t insertion_ctr;
|
||||
void *cb_data;
|
||||
size_t alloc, nr;
|
||||
struct prio_queue_entry *array;
|
||||
|
|
|
|||
|
|
@ -3041,7 +3041,7 @@ static void reach_filter(struct ref_array *array,
|
|||
struct commit_list **check_reachable,
|
||||
int include_reached)
|
||||
{
|
||||
int i, old_nr;
|
||||
size_t i, old_nr;
|
||||
struct commit **to_clear;
|
||||
|
||||
if (!*check_reachable)
|
||||
|
|
|
|||
4
remote.c
4
remote.c
|
|
@ -1535,7 +1535,7 @@ static struct ref **tail_ref(struct ref **head)
|
|||
|
||||
struct tips {
|
||||
struct commit **tip;
|
||||
int nr, alloc;
|
||||
size_t nr, alloc;
|
||||
};
|
||||
|
||||
static void add_to_tips(struct tips *tips, const struct object_id *oid)
|
||||
|
|
@ -1602,7 +1602,7 @@ static void add_missing_tags(struct ref *src, struct ref **dst, struct ref ***ds
|
|||
const int reachable_flag = 1;
|
||||
struct commit_list *found_commits;
|
||||
struct commit **src_commits;
|
||||
int nr_src_commits = 0, alloc_src_commits = 16;
|
||||
size_t nr_src_commits = 0, alloc_src_commits = 16;
|
||||
ALLOC_ARRAY(src_commits, alloc_src_commits);
|
||||
|
||||
for_each_string_list_item(item, &src_tag) {
|
||||
|
|
|
|||
40
shallow.c
40
shallow.c
|
|
@ -1,5 +1,4 @@
|
|||
#define USE_THE_REPOSITORY_VARIABLE
|
||||
#define DISABLE_SIGN_COMPARE_WARNINGS
|
||||
|
||||
#include "git-compat-util.h"
|
||||
#include "hex.h"
|
||||
|
|
@ -134,7 +133,8 @@ static void free_depth_in_slab(int **ptr)
|
|||
struct commit_list *get_shallow_commits(struct object_array *heads, int depth,
|
||||
int shallow_flag, int not_shallow_flag)
|
||||
{
|
||||
int i = 0, cur_depth = 0;
|
||||
size_t i = 0;
|
||||
int cur_depth = 0;
|
||||
struct commit_list *result = NULL;
|
||||
struct object_array stack = OBJECT_ARRAY_INIT;
|
||||
struct commit *commit = NULL;
|
||||
|
|
@ -335,16 +335,16 @@ static int write_shallow_commits_1(struct strbuf *out, int use_pack_protocol,
|
|||
const struct oid_array *extra,
|
||||
unsigned flags)
|
||||
{
|
||||
struct write_shallow_data data;
|
||||
int i;
|
||||
data.out = out;
|
||||
data.use_pack_protocol = use_pack_protocol;
|
||||
data.count = 0;
|
||||
data.flags = flags;
|
||||
struct write_shallow_data data = {
|
||||
.out = out,
|
||||
.use_pack_protocol = use_pack_protocol,
|
||||
.flags = flags,
|
||||
};
|
||||
|
||||
for_each_commit_graft(write_one_shallow, &data);
|
||||
if (!extra)
|
||||
return data.count;
|
||||
for (i = 0; i < extra->nr; i++) {
|
||||
for (size_t i = 0; i < extra->nr; i++) {
|
||||
strbuf_addstr(out, oid_to_hex(extra->oid + i));
|
||||
strbuf_addch(out, '\n');
|
||||
data.count++;
|
||||
|
|
@ -466,7 +466,6 @@ struct trace_key trace_shallow = TRACE_KEY_INIT(SHALLOW);
|
|||
*/
|
||||
void prepare_shallow_info(struct shallow_info *info, struct oid_array *sa)
|
||||
{
|
||||
int i;
|
||||
trace_printf_key(&trace_shallow, "shallow: prepare_shallow_info\n");
|
||||
memset(info, 0, sizeof(*info));
|
||||
info->shallow = sa;
|
||||
|
|
@ -474,7 +473,7 @@ void prepare_shallow_info(struct shallow_info *info, struct oid_array *sa)
|
|||
return;
|
||||
ALLOC_ARRAY(info->ours, sa->nr);
|
||||
ALLOC_ARRAY(info->theirs, sa->nr);
|
||||
for (i = 0; i < sa->nr; i++) {
|
||||
for (size_t i = 0; i < sa->nr; i++) {
|
||||
if (repo_has_object_file(the_repository, sa->oid + i)) {
|
||||
struct commit_graft *graft;
|
||||
graft = lookup_commit_graft(the_repository,
|
||||
|
|
@ -507,7 +506,7 @@ void clear_shallow_info(struct shallow_info *info)
|
|||
void remove_nonexistent_theirs_shallow(struct shallow_info *info)
|
||||
{
|
||||
struct object_id *oid = info->shallow->oid;
|
||||
int i, dst;
|
||||
size_t i, dst;
|
||||
trace_printf_key(&trace_shallow, "shallow: remove_nonexistent_theirs_shallow\n");
|
||||
for (i = dst = 0; i < info->nr_theirs; i++) {
|
||||
if (i != dst)
|
||||
|
|
@ -535,7 +534,7 @@ static uint32_t *paint_alloc(struct paint_info *info)
|
|||
unsigned nr = DIV_ROUND_UP(info->nr_bits, 32);
|
||||
unsigned size = nr * sizeof(uint32_t);
|
||||
void *p;
|
||||
if (!info->pool_count || size > info->end - info->free) {
|
||||
if (!info->pool_count || info->end < info->free + size) {
|
||||
if (size > POOL_SIZE)
|
||||
BUG("pool size too small for %d in paint_alloc()",
|
||||
size);
|
||||
|
|
@ -560,7 +559,7 @@ static void paint_down(struct paint_info *info, const struct object_id *oid,
|
|||
{
|
||||
unsigned int i, nr;
|
||||
struct commit_list *head = NULL;
|
||||
int bitmap_nr = DIV_ROUND_UP(info->nr_bits, 32);
|
||||
size_t bitmap_nr = DIV_ROUND_UP(info->nr_bits, 32);
|
||||
size_t bitmap_size = st_mult(sizeof(uint32_t), bitmap_nr);
|
||||
struct commit *c = lookup_commit_reference_gently(the_repository, oid,
|
||||
1);
|
||||
|
|
@ -660,7 +659,7 @@ void assign_shallow_commits_to_refs(struct shallow_info *info,
|
|||
struct object_id *oid = info->shallow->oid;
|
||||
struct oid_array *ref = info->ref;
|
||||
unsigned int i, nr;
|
||||
int *shallow, nr_shallow = 0;
|
||||
size_t *shallow, nr_shallow = 0;
|
||||
struct paint_info pi;
|
||||
|
||||
trace_printf_key(&trace_shallow, "shallow: assign_shallow_commits_to_refs\n");
|
||||
|
|
@ -735,7 +734,7 @@ void assign_shallow_commits_to_refs(struct shallow_info *info,
|
|||
|
||||
struct commit_array {
|
||||
struct commit **commits;
|
||||
int nr, alloc;
|
||||
size_t nr, alloc;
|
||||
};
|
||||
|
||||
static int add_ref(const char *refname UNUSED,
|
||||
|
|
@ -753,12 +752,11 @@ static int add_ref(const char *refname UNUSED,
|
|||
return 0;
|
||||
}
|
||||
|
||||
static void update_refstatus(int *ref_status, int nr, uint32_t *bitmap)
|
||||
static void update_refstatus(int *ref_status, size_t nr, uint32_t *bitmap)
|
||||
{
|
||||
unsigned int i;
|
||||
if (!ref_status)
|
||||
return;
|
||||
for (i = 0; i < nr; i++)
|
||||
for (size_t i = 0; i < nr; i++)
|
||||
if (bitmap[i / 32] & (1U << (i % 32)))
|
||||
ref_status[i]++;
|
||||
}
|
||||
|
|
@ -773,8 +771,8 @@ static void post_assign_shallow(struct shallow_info *info,
|
|||
struct object_id *oid = info->shallow->oid;
|
||||
struct commit *c;
|
||||
uint32_t **bitmap;
|
||||
int dst, i, j;
|
||||
int bitmap_nr = DIV_ROUND_UP(info->ref->nr, 32);
|
||||
size_t dst, i, j;
|
||||
size_t bitmap_nr = DIV_ROUND_UP(info->ref->nr, 32);
|
||||
struct commit_array ca;
|
||||
|
||||
trace_printf_key(&trace_shallow, "shallow: post_assign_shallow\n");
|
||||
|
|
|
|||
|
|
@ -59,8 +59,8 @@ void prune_shallow(unsigned options);
|
|||
*/
|
||||
struct shallow_info {
|
||||
struct oid_array *shallow;
|
||||
int *ours, nr_ours;
|
||||
int *theirs, nr_theirs;
|
||||
size_t *ours, nr_ours;
|
||||
size_t *theirs, nr_theirs;
|
||||
struct oid_array *ref;
|
||||
|
||||
/* for receive-pack */
|
||||
|
|
@ -69,7 +69,7 @@ struct shallow_info {
|
|||
int *reachable;
|
||||
int *shallow_ref;
|
||||
struct commit **commits;
|
||||
int nr_commits;
|
||||
size_t nr_commits;
|
||||
};
|
||||
|
||||
void prepare_shallow_info(struct shallow_info *, struct oid_array *);
|
||||
|
|
|
|||
|
|
@ -35,7 +35,7 @@ int cmd__reach(int ac, const char **av)
|
|||
struct commit_list *X, *Y;
|
||||
struct object_array X_obj = OBJECT_ARRAY_INIT;
|
||||
struct commit **X_array, **Y_array;
|
||||
int X_nr, X_alloc, Y_nr, Y_alloc;
|
||||
size_t X_nr, X_alloc, Y_nr, Y_alloc;
|
||||
struct strbuf buf = STRBUF_INIT;
|
||||
struct repository *r = the_repository;
|
||||
|
||||
|
|
@ -157,7 +157,7 @@ int cmd__reach(int ac, const char **av)
|
|||
clear_contains_cache(&cache);
|
||||
} else if (!strcmp(av[1], "get_reachable_subset")) {
|
||||
const int reachable_flag = 1;
|
||||
int i, count = 0;
|
||||
int count = 0;
|
||||
struct commit_list *current;
|
||||
struct commit_list *list = get_reachable_subset(X_array, X_nr,
|
||||
Y_array, Y_nr,
|
||||
|
|
@ -169,7 +169,7 @@ int cmd__reach(int ac, const char **av)
|
|||
oid_to_hex(&list->item->object.oid));
|
||||
count++;
|
||||
}
|
||||
for (i = 0; i < Y_nr; i++) {
|
||||
for (size_t i = 0; i < Y_nr; i++) {
|
||||
if (Y_array[i]->object.flags & reachable_flag)
|
||||
count--;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue