packfile: reorder functions to avoid function declaration

Reorder functions so that we can avoid a forward declaration of `prepare_packed_git()`. Signed-off-by: Patrick Steinhardt <ps@pks.im> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Patrick Steinhardt committed Sep 23, 2025 at 12:17 UTC 995ee880277144207b2cb45069218aa972fb350b
1 file changed +33 -34
packfile.c
+33 -34
@@ -946,40 +946,6 @@ static void prepare_packed_git_one(struct odb_source *source)
946 string_list_clear(data.garbage, 0);
947 }
948
949 -static void prepare_packed_git(struct repository *r);
950 -/*
951 - * Give a fast, rough count of the number of objects in the repository. This
952 - * ignores loose objects completely. If you have a lot of them, then either
953 - * you should repack because your performance will be awful, or they are
954 - * all unreachable objects about to be pruned, in which case they're not really
955 - * interesting as a measure of repo size in the first place.
956 - */
957 -unsigned long repo_approximate_object_count(struct repository *r)
958 -{
959 - if (!r->objects->approximate_object_count_valid) {
960 - struct odb_source *source;
961 - unsigned long count = 0;
962 - struct packed_git *p;
963 -
964 - prepare_packed_git(r);
965 -
966 - for (source = r->objects->sources; source; source = source->next) {
967 - struct multi_pack_index *m = get_multi_pack_index(source);
968 - if (m)
969 - count += m->num_objects;
970 - }
971 -
972 - for (p = r->objects->packfiles->packs; p; p = p->next) {
973 - if (open_pack_index(p))
974 - continue;
975 - count += p->num_objects;
976 - }
977 - r->objects->approximate_object_count = count;
978 - r->objects->approximate_object_count_valid = 1;
979 - }
980 - return r->objects->approximate_object_count;
981 -}
982 -
949 DEFINE_LIST_SORT(static, sort_packs, struct packed_git, next);
950
951 static int sort_pack(const struct packed_git *a, const struct packed_git *b)
@@ -1098,6 +1064,39 @@ struct list_head *get_packed_git_mru(struct repository *r)
1064 return &r->objects->packfiles->mru;
1065 }
1066
1067 +/*
1068 + * Give a fast, rough count of the number of objects in the repository. This
1069 + * ignores loose objects completely. If you have a lot of them, then either
1070 + * you should repack because your performance will be awful, or they are
1071 + * all unreachable objects about to be pruned, in which case they're not really
1072 + * interesting as a measure of repo size in the first place.
1073 + */
1074 +unsigned long repo_approximate_object_count(struct repository *r)
1075 +{
1076 + if (!r->objects->approximate_object_count_valid) {
1077 + struct odb_source *source;
1078 + unsigned long count = 0;
1079 + struct packed_git *p;
1080 +
1081 + prepare_packed_git(r);
1082 +
1083 + for (source = r->objects->sources; source; source = source->next) {
1084 + struct multi_pack_index *m = get_multi_pack_index(source);
1085 + if (m)
1086 + count += m->num_objects;
1087 + }
1088 +
1089 + for (p = r->objects->packfiles->packs; p; p = p->next) {
1090 + if (open_pack_index(p))
1091 + continue;
1092 + count += p->num_objects;
1093 + }
1094 + r->objects->approximate_object_count = count;
1095 + r->objects->approximate_object_count_valid = 1;
1096 + }
1097 + return r->objects->approximate_object_count;
1098 +}
1099 +
1100 unsigned long unpack_object_header_buffer(const unsigned char *buf,
1101 unsigned long len, enum object_type *type, unsigned long *sizep)
1102 {