[PATCH 02/39] repository: introduce object store field
From: Jonathan Nieder <hidden>
Date: 2017-08-30 06:52:26
Subsystem:
the rest · Maintainer:
Linus Torvalds
From: Stefan Beller <redacted> The object store field will contain any objects needed for access to objects in a given repository. This patch introduces the object store but for now it is empty. C99 forbids empty structs, but common C compilers cope well with them and this struct will gain members very soon (starting with the next patch). Signed-off-by: Stefan Beller <redacted> Signed-off-by: Jonathan Nieder <redacted> --- Are there any straightforward ways to avoid the empty struct? Should the struct have a placeholder member to avoid language issues with an object that would have size 0? object-store.h | 8 ++++++++ repository.c | 4 +++- repository.h | 7 +++++++ 3 files changed, 18 insertions(+), 1 deletion(-) create mode 100644 object-store.h
diff --git a/object-store.h b/object-store.h
new file mode 100644
index 0000000000..05722cdde0
--- /dev/null
+++ b/object-store.h@@ -0,0 +1,8 @@ +#ifndef OBJECT_STORE_H +#define OBJECT_STORE_H + +struct object_store { +}; +#define OBJECT_STORE_INIT {} + +#endif /* OBJECT_STORE_H */
diff --git a/repository.c b/repository.c
index f107af7d76..566753ed4b 100644
--- a/repository.c
+++ b/repository.c@@ -1,11 +1,13 @@ #include "cache.h" #include "repository.h" +#include "object-store.h" #include "config.h" #include "submodule-config.h" /* The main repository */ static struct repository the_repo = { - NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, &the_index, 0, 0 + NULL, NULL, NULL, OBJECT_STORE_INIT, + NULL, NULL, NULL, NULL, NULL, NULL, &the_index, 0, 0 }; struct repository *the_repository = &the_repo;
diff --git a/repository.h b/repository.h
index 7f5e24a0a2..9633ad10f5 100644
--- a/repository.h
+++ b/repository.h@@ -1,6 +1,8 @@ #ifndef REPOSITORY_H #define REPOSITORY_H +#include "object-store.h" + struct config_set; struct index_state; struct submodule_cache;
@@ -25,6 +27,11 @@ struct repository { */ char *objectdir; + /* + * Holds any information related to the object store. + */ + struct object_store objects; + /* * Path to the repository's graft file. * Cannot be NULL after initialization.
--
2.14.1.581.gf28d330327