diff options
authorStefan Beller <>2018-05-08 19:37:27 (GMT)
committerJunio C Hamano <>2018-05-09 03:12:36 (GMT)
commitf0de1d62ae5982630cfb2c713ddcda853b9ee0cf (patch)
parentc077a4526ba456ada28d16db9c945afd9a4a57de (diff)
alloc: add repository argument to alloc_blob_node
This is a small mechanical change; it doesn't change the implementation to handle repositories other than the_repository yet. Use a macro to catch callers passing a repository other than the_repository at compile time. Signed-off-by: Stefan Beller <> Signed-off-by: Junio C Hamano <>
3 files changed, 4 insertions, 3 deletions
diff --git a/alloc.c b/alloc.c
index 12afadf..6c5c376 100644
--- a/alloc.c
+++ b/alloc.c
@@ -49,7 +49,7 @@ static inline void *alloc_node(struct alloc_state *s, size_t node_size)
static struct alloc_state blob_state;
-void *alloc_blob_node(void)
+void *alloc_blob_node_the_repository(void)
struct blob *b = alloc_node(&blob_state, sizeof(struct blob));
b->object.type = OBJ_BLOB;
diff --git a/blob.c b/blob.c
index 85c2143..9e64f30 100644
--- a/blob.c
+++ b/blob.c
@@ -9,7 +9,7 @@ struct blob *lookup_blob(const struct object_id *oid)
struct object *obj = lookup_object(oid->hash);
if (!obj)
return create_object(the_repository, oid->hash,
- alloc_blob_node());
+ alloc_blob_node(the_repository));
return object_as_type(obj, OBJ_BLOB, 0);
diff --git a/cache.h b/cache.h
index 3a4d80e..2258e61 100644
--- a/cache.h
+++ b/cache.h
@@ -1764,7 +1764,8 @@ int decode_85(char *dst, const char *line, int linelen);
void encode_85(char *buf, const unsigned char *data, int bytes);
/* alloc.c */
-extern void *alloc_blob_node(void);
+#define alloc_blob_node(r) alloc_blob_node_##r()
+extern void *alloc_blob_node_the_repository(void);
extern void *alloc_tree_node(void);
extern void *alloc_commit_node(void);
extern void *alloc_tag_node(void);