object-store: move function declarations to their respective subsystems
We carry declarations for a couple of functions in "object-store.h" that are not defined in "object-store.c", but in a different subsystem. Move these declarations to the respective headers whose matching code files carry the corresponding definition. Signed-off-by: Patrick Steinhardt <ps@pks.im> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Patrick Steinhardt committed
Apr 29, 2025 at 09:52 UTC
1a793261c53507f7c46f748cc76378a9c5bb05cf
12 files changed
+106
-103
builtin/count-objects.c
+1
-1
@@ -12,7 +12,7 @@
12
#include "parse-options.h"
13
#include "quote.h"
14
#include "packfile.h"
15
-#include "object-store.h"
15
+#include "object-file.h"
16
17
static unsigned long garbage;
18
static off_t size_garbage;
builtin/gc.c
+1
-1
@@ -28,7 +28,7 @@
28
#include "commit.h"
29
#include "commit-graph.h"
30
#include "packfile.h"
31
-#include "object-store.h"
31
+#include "object-file.h"
32
#include "pack.h"
33
#include "pack-objects.h"
34
#include "path.h"
convert.c
+1
-1
@@ -8,7 +8,7 @@
8
#include "copy.h"
9
#include "gettext.h"
10
#include "hex.h"
11
-#include "object-store.h"
11
+#include "object-file.h"
12
#include "attr.h"
13
#include "run-command.h"
14
#include "quote.h"
diffcore-rename.c
+1
-1
@@ -8,7 +8,7 @@
8
#include "git-compat-util.h"
9
#include "diff.h"
10
#include "diffcore.h"
11
-#include "object-store.h"
11
+#include "object-file.h"
12
#include "hashmap.h"
13
#include "mem-pool.h"
14
#include "oid-array.h"
dir.c
+1
-1
@@ -17,7 +17,7 @@
17
#include "environment.h"
18
#include "gettext.h"
19
#include "name-hash.h"
20
-#include "object-store.h"
20
+#include "object-file.h"
21
#include "path.h"
22
#include "refs.h"
23
#include "repository.h"
log-tree.c
+1
-1
@@ -9,7 +9,7 @@
9
#include "environment.h"
10
#include "hex.h"
11
#include "object-name.h"
12
-#include "object-store.h"
12
+#include "object-file.h"
13
#include "repository.h"
14
#include "tmp-objdir.h"
15
#include "commit.h"
object-file.h
+77
@@ -3,6 +3,7 @@
3
4
#include "git-zlib.h"
5
#include "object.h"
6
+#include "object-store.h"
7
8
struct index_state;
9
@@ -25,6 +26,16 @@ int index_path(struct index_state *istate, struct object_id *oid, const char *pa
26
27
struct object_directory;
28
29
+/*
30
+ * Populate and return the loose object cache array corresponding to the
31
+ * given object ID.
32
+ */
33
+struct oidtree *odb_loose_cache(struct object_directory *odb,
34
+ const struct object_id *oid);
35
+
36
+/* Empty the loose object cache for the specified object directory. */
37
+void odb_clear_loose_cache(struct object_directory *odb);
38
+
39
/*
40
* Put in `buf` the name of the file in the local object database that
41
* would be used to store a loose object with the specified oid.
@@ -42,6 +53,68 @@ int has_loose_object_nonlocal(const struct object_id *);
53
54
int has_loose_object(const struct object_id *);
55
56
+void *map_loose_object(struct repository *r, const struct object_id *oid,
57
+ unsigned long *size);
58
+
59
+/*
60
+ * Iterate over the files in the loose-object parts of the object
61
+ * directory "path", triggering the following callbacks:
62
+ *
63
+ * - loose_object is called for each loose object we find.
64
+ *
65
+ * - loose_cruft is called for any files that do not appear to be
66
+ * loose objects. Note that we only look in the loose object
67
+ * directories "objects/[0-9a-f]{2}/", so we will not report
68
+ * "objects/foobar" as cruft.
69
+ *
70
+ * - loose_subdir is called for each top-level hashed subdirectory
71
+ * of the object directory (e.g., "$OBJDIR/f0"). It is called
72
+ * after the objects in the directory are processed.
73
+ *
74
+ * Any callback that is NULL will be ignored. Callbacks returning non-zero
75
+ * will end the iteration.
76
+ *
77
+ * In the "buf" variant, "path" is a strbuf which will also be used as a
78
+ * scratch buffer, but restored to its original contents before
79
+ * the function returns.
80
+ */
81
+typedef int each_loose_object_fn(const struct object_id *oid,
82
+ const char *path,
83
+ void *data);
84
+typedef int each_loose_cruft_fn(const char *basename,
85
+ const char *path,
86
+ void *data);
87
+typedef int each_loose_subdir_fn(unsigned int nr,
88
+ const char *path,
89
+ void *data);
90
+int for_each_file_in_obj_subdir(unsigned int subdir_nr,
91
+ struct strbuf *path,
92
+ each_loose_object_fn obj_cb,
93
+ each_loose_cruft_fn cruft_cb,
94
+ each_loose_subdir_fn subdir_cb,
95
+ void *data);
96
+int for_each_loose_file_in_objdir(const char *path,
97
+ each_loose_object_fn obj_cb,
98
+ each_loose_cruft_fn cruft_cb,
99
+ each_loose_subdir_fn subdir_cb,
100
+ void *data);
101
+int for_each_loose_file_in_objdir_buf(struct strbuf *path,
102
+ each_loose_object_fn obj_cb,
103
+ each_loose_cruft_fn cruft_cb,
104
+ each_loose_subdir_fn subdir_cb,
105
+ void *data);
106
+
107
+/*
108
+ * Iterate over all accessible loose objects without respect to
109
+ * reachability. By default, this includes both local and alternate objects.
110
+ * The order in which objects are visited is unspecified.
111
+ *
112
+ * Any flags specific to packs are ignored.
113
+ */
114
+int for_each_loose_object(each_loose_object_fn, void *,
115
+ enum for_each_object_flags flags);
116
+
117
+
118
/**
119
* format_object_header() is a thin wrapper around s xsnprintf() that
120
* writes the initial "<type> <obj-len>" part of the loose object
@@ -158,6 +231,10 @@ int finalize_object_file(const char *tmpfile, const char *filename);
231
int finalize_object_file_flags(const char *tmpfile, const char *filename,
232
enum finalize_object_file_flags flags);
233
234
+void hash_object_file(const struct git_hash_algo *algo, const void *buf,
235
+ unsigned long len, enum object_type type,
236
+ struct object_id *oid);
237
+
238
/* Helper to check and "touch" a file */
239
int check_and_freshen_file(const char *fn, int freshen);
240
object-name.c
+1
-1
@@ -19,7 +19,7 @@
19
#include "oidtree.h"
20
#include "packfile.h"
21
#include "pretty.h"
22
-#include "object-store.h"
22
+#include "object-file.h"
23
#include "read-cache-ll.h"
24
#include "repo-settings.h"
25
#include "repository.h"
object-store.h
+1
-94
@@ -82,16 +82,6 @@ struct object_directory *set_temporary_primary_odb(const char *dir, int will_des
82
*/
83
void restore_primary_odb(struct object_directory *restore_odb, const char *old_path);
84
85
-/*
86
- * Populate and return the loose object cache array corresponding to the
87
- * given object ID.
88
- */
89
-struct oidtree *odb_loose_cache(struct object_directory *odb,
90
- const struct object_id *oid);
91
-
92
-/* Empty the loose object cache for the specified object directory. */
93
-void odb_clear_loose_cache(struct object_directory *odb);
94
-
85
struct packed_git;
86
struct multi_pack_index;
87
struct cached_object_entry;
@@ -189,9 +179,6 @@ void raw_object_store_clear(struct raw_object_store *o);
179
*/
180
int odb_mkstemp(struct strbuf *temp_filename, const char *pattern);
181
192
-void *map_loose_object(struct repository *r, const struct object_id *oid,
193
- unsigned long *size);
194
-
182
void *repo_read_object_file(struct repository *r,
183
const struct object_id *oid,
184
enum object_type *type,
@@ -200,10 +187,6 @@ void *repo_read_object_file(struct repository *r,
187
/* Read and unpack an object file into memory, write memory to an object file */
188
int oid_object_info(struct repository *r, const struct object_id *, unsigned long *);
189
203
-void hash_object_file(const struct git_hash_algo *algo, const void *buf,
204
- unsigned long len, enum object_type type,
205
- struct object_id *oid);
206
-
190
/*
191
* Add an object file to the in-memory object store, without writing it
192
* to disk.
@@ -340,56 +323,7 @@ static inline void obj_read_unlock(void)
323
if(obj_read_use_lock)
324
pthread_mutex_unlock(&obj_read_mutex);
325
}
343
-
344
-/*
345
- * Iterate over the files in the loose-object parts of the object
346
- * directory "path", triggering the following callbacks:
347
- *
348
- * - loose_object is called for each loose object we find.
349
- *
350
- * - loose_cruft is called for any files that do not appear to be
351
- * loose objects. Note that we only look in the loose object
352
- * directories "objects/[0-9a-f]{2}/", so we will not report
353
- * "objects/foobar" as cruft.
354
- *
355
- * - loose_subdir is called for each top-level hashed subdirectory
356
- * of the object directory (e.g., "$OBJDIR/f0"). It is called
357
- * after the objects in the directory are processed.
358
- *
359
- * Any callback that is NULL will be ignored. Callbacks returning non-zero
360
- * will end the iteration.
361
- *
362
- * In the "buf" variant, "path" is a strbuf which will also be used as a
363
- * scratch buffer, but restored to its original contents before
364
- * the function returns.
365
- */
366
-typedef int each_loose_object_fn(const struct object_id *oid,
367
- const char *path,
368
- void *data);
369
-typedef int each_loose_cruft_fn(const char *basename,
370
- const char *path,
371
- void *data);
372
-typedef int each_loose_subdir_fn(unsigned int nr,
373
- const char *path,
374
- void *data);
375
-int for_each_file_in_obj_subdir(unsigned int subdir_nr,
376
- struct strbuf *path,
377
- each_loose_object_fn obj_cb,
378
- each_loose_cruft_fn cruft_cb,
379
- each_loose_subdir_fn subdir_cb,
380
- void *data);
381
-int for_each_loose_file_in_objdir(const char *path,
382
- each_loose_object_fn obj_cb,
383
- each_loose_cruft_fn cruft_cb,
384
- each_loose_subdir_fn subdir_cb,
385
- void *data);
386
-int for_each_loose_file_in_objdir_buf(struct strbuf *path,
387
- each_loose_object_fn obj_cb,
388
- each_loose_cruft_fn cruft_cb,
389
- each_loose_subdir_fn subdir_cb,
390
- void *data);
391
-
392
-/* Flags for for_each_*_object() below. */
326
+/* Flags for for_each_*_object(). */
327
enum for_each_object_flags {
328
/* Iterate only over local objects, not alternates. */
329
FOR_EACH_OBJECT_LOCAL_ONLY = (1<<0),
@@ -409,33 +343,6 @@ enum for_each_object_flags {
343
FOR_EACH_OBJECT_SKIP_ON_DISK_KEPT_PACKS = (1<<4),
344
};
345
412
-/*
413
- * Iterate over all accessible loose objects without respect to
414
- * reachability. By default, this includes both local and alternate objects.
415
- * The order in which objects are visited is unspecified.
416
- *
417
- * Any flags specific to packs are ignored.
418
- */
419
-int for_each_loose_object(each_loose_object_fn, void *,
420
- enum for_each_object_flags flags);
421
-
422
-/*
423
- * Iterate over all accessible packed objects without respect to reachability.
424
- * By default, this includes both local and alternate packs.
425
- *
426
- * Note that some objects may appear twice if they are found in multiple packs.
427
- * Each pack is visited in an unspecified order. By default, objects within a
428
- * pack are visited in pack-idx order (i.e., sorted by oid).
429
- */
430
-typedef int each_packed_object_fn(const struct object_id *oid,
431
- struct packed_git *pack,
432
- uint32_t pos,
433
- void *data);
434
-int for_each_object_in_pack(struct packed_git *p,
435
- each_packed_object_fn, void *data,
436
- enum for_each_object_flags flags);
437
-int for_each_packed_object(struct repository *repo, each_packed_object_fn cb,
438
- void *data, enum for_each_object_flags flags);
346
347
void *read_object_with_reference(struct repository *r,
348
const struct object_id *oid,
packfile.h
+19
@@ -3,6 +3,7 @@
3
4
#include "list.h"
5
#include "object.h"
6
+#include "object-store.h"
7
#include "oidset.h"
8
9
/* in object-store.h */
@@ -117,6 +118,24 @@ void for_each_file_in_pack_dir(const char *objdir,
118
each_file_in_pack_dir_fn fn,
119
void *data);
120
121
+/*
122
+ * Iterate over all accessible packed objects without respect to reachability.
123
+ * By default, this includes both local and alternate packs.
124
+ *
125
+ * Note that some objects may appear twice if they are found in multiple packs.
126
+ * Each pack is visited in an unspecified order. By default, objects within a
127
+ * pack are visited in pack-idx order (i.e., sorted by oid).
128
+ */
129
+typedef int each_packed_object_fn(const struct object_id *oid,
130
+ struct packed_git *pack,
131
+ uint32_t pos,
132
+ void *data);
133
+int for_each_object_in_pack(struct packed_git *p,
134
+ each_packed_object_fn, void *data,
135
+ enum for_each_object_flags flags);
136
+int for_each_packed_object(struct repository *repo, each_packed_object_fn cb,
137
+ void *data, enum for_each_object_flags flags);
138
+
139
/* A hook to report invalid files in pack directory */
140
#define PACKDIR_FILE_PACK 1
141
#define PACKDIR_FILE_IDX 2
prune-packed.c
+1
-1
@@ -2,7 +2,7 @@
2
3
#include "git-compat-util.h"
4
#include "gettext.h"
5
-#include "object-store.h"
5
+#include "object-file.h"
6
#include "packfile.h"
7
#include "progress.h"
8
#include "prune-packed.h"
reachable.c
+1
-1
@@ -14,7 +14,7 @@
14
#include "list-objects.h"
15
#include "packfile.h"
16
#include "worktree.h"
17
-#include "object-store.h"
17
+#include "object-file.h"
18
#include "pack-bitmap.h"
19
#include "pack-mtimes.h"
20
#include "config.h"