commit-reach: fix type of `min_commit_date`

The `can_all_from_reach_with_flag()` function accepts a parameter that allows callers to cut off traversal at a specified commit date. This parameter is of type `time_t`, which is a signed type, while we end up comparing it to a commit's `date` field, which is of the unsigned type `timestamp_t`. Fix the parameter to be of type `timestamp_t`. There is only a single caller in "upload-pack.c" that sets this parameter, and that caller knows to pass in a `timestamp_t` already. Signed-off-by: Patrick Steinhardt <ps@pks.im> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Patrick Steinhardt committed Dec 27, 2024 at 11:46 UTC 04aeeeaab1f02213703c4e1997b2c2f1ca0f8f96
2 files changed +3 -3
commit-reach.c
+2 -2
@@ -780,7 +780,7 @@ int commit_contains(struct ref_filter *filter, struct commit *commit,
780 int can_all_from_reach_with_flag(struct object_array *from,
781 unsigned int with_flag,
782 unsigned int assign_flag,
783 - time_t min_commit_date,
783 + timestamp_t min_commit_date,
784 timestamp_t min_generation)
785 {
786 struct commit **list = NULL;
@@ -883,9 +883,9 @@ int can_all_from_reach(struct commit_list *from, struct commit_list *to,
883 int cutoff_by_min_date)
884 {
885 struct object_array from_objs = OBJECT_ARRAY_INIT;
886 - time_t min_commit_date = cutoff_by_min_date ? from->item->date : 0;
886 struct commit_list *from_iter = from, *to_iter = to;
887 int result;
888 + timestamp_t min_commit_date = cutoff_by_min_date ? from->item->date : 0;
889 timestamp_t min_generation = GENERATION_NUMBER_INFINITY;
890
891 while (from_iter) {
commit-reach.h
+1 -1
@@ -81,7 +81,7 @@ int commit_contains(struct ref_filter *filter, struct commit *commit,
81 int can_all_from_reach_with_flag(struct object_array *from,
82 unsigned int with_flag,
83 unsigned int assign_flag,
84 - time_t min_commit_date,
84 + timestamp_t min_commit_date,
85 timestamp_t min_generation);
86 int can_all_from_reach(struct commit_list *from, struct commit_list *to,
87 int commit_date_cutoff);