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
{