summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStefan Beller <sbeller@google.com>2018-05-08 12:37:25 -0700
committerJunio C Hamano <gitster@pobox.com>2018-05-09 12:12:36 +0900
commit68f95d382b51b134b138c91f94adb8d9ef2f557a (patch)
tree3dba7b85cccb8f7e4911fabcb7fa87ad98612fa3
parent99bf115c879af7e38ef0ca9596fc9db1d6598d5f (diff)
downloadgit-68f95d382b51b134b138c91f94adb8d9ef2f557a.tar.gz
git-68f95d382b51b134b138c91f94adb8d9ef2f557a.tar.xz
object: add repository argument to create_object
Add a repository argument to allow the callers of create_object to be more specific about which repository to act on. This is a small mechanical change; it doesn't change the implementation to handle repositories other than the_repository yet. Signed-off-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Stefan Beller <sbeller@google.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r--blob.c4
-rw-r--r--commit.c3
-rw-r--r--object.c5
-rw-r--r--object.h3
-rw-r--r--tag.c3
-rw-r--r--tree.c3
6 files changed, 14 insertions, 7 deletions
diff --git a/blob.c b/blob.c
index fa2ab4f7a..85c2143f2 100644
--- a/blob.c
+++ b/blob.c
@@ -1,5 +1,6 @@
#include "cache.h"
#include "blob.h"
+#include "repository.h"
const char *blob_type = "blob";
@@ -7,7 +8,8 @@ struct blob *lookup_blob(const struct object_id *oid)
{
struct object *obj = lookup_object(oid->hash);
if (!obj)
- return create_object(oid->hash, alloc_blob_node());
+ return create_object(the_repository, oid->hash,
+ alloc_blob_node());
return object_as_type(obj, OBJ_BLOB, 0);
}
diff --git a/commit.c b/commit.c
index ca474a7c1..9106acf0a 100644
--- a/commit.c
+++ b/commit.c
@@ -50,7 +50,8 @@ struct commit *lookup_commit(const struct object_id *oid)
{
struct object *obj = lookup_object(oid->hash);
if (!obj)
- return create_object(oid->hash, alloc_commit_node());
+ return create_object(the_repository, oid->hash,
+ alloc_commit_node());
return object_as_type(obj, OBJ_COMMIT, 0);
}
diff --git a/object.c b/object.c
index f7c624a7b..2de029275 100644
--- a/object.c
+++ b/object.c
@@ -138,7 +138,7 @@ static void grow_object_hash(void)
the_repository->parsed_objects->obj_hash_size = new_hash_size;
}
-void *create_object(const unsigned char *sha1, void *o)
+void *create_object_the_repository(const unsigned char *sha1, void *o)
{
struct object *obj = o;
@@ -178,7 +178,8 @@ struct object *lookup_unknown_object(const unsigned char *sha1)
{
struct object *obj = lookup_object(sha1);
if (!obj)
- obj = create_object(sha1, alloc_object_node());
+ obj = create_object(the_repository, sha1,
+ alloc_object_node());
return obj;
}
diff --git a/object.h b/object.h
index cecda7da3..2cb0b2410 100644
--- a/object.h
+++ b/object.h
@@ -93,7 +93,8 @@ extern struct object *get_indexed_object(unsigned int);
*/
struct object *lookup_object(const unsigned char *sha1);
-extern void *create_object(const unsigned char *sha1, void *obj);
+#define create_object(r, s, o) create_object_##r(s, o)
+extern void *create_object_the_repository(const unsigned char *sha1, void *obj);
void *object_as_type(struct object *obj, enum object_type type, int quiet);
diff --git a/tag.c b/tag.c
index 3d37c1bd2..7150b759d 100644
--- a/tag.c
+++ b/tag.c
@@ -93,7 +93,8 @@ struct tag *lookup_tag(const struct object_id *oid)
{
struct object *obj = lookup_object(oid->hash);
if (!obj)
- return create_object(oid->hash, alloc_tag_node());
+ return create_object(the_repository, oid->hash,
+ alloc_tag_node());
return object_as_type(obj, OBJ_TAG, 0);
}
diff --git a/tree.c b/tree.c
index 1c68ea586..63730e3fb 100644
--- a/tree.c
+++ b/tree.c
@@ -196,7 +196,8 @@ struct tree *lookup_tree(const struct object_id *oid)
{
struct object *obj = lookup_object(oid->hash);
if (!obj)
- return create_object(oid->hash, alloc_tree_node());
+ return create_object(the_repository, oid->hash,
+ alloc_tree_node());
return object_as_type(obj, OBJ_TREE, 0);
}