replace-object: allow do_lookup_replace_object to handle arbitrary repositories
Signed-off-by: Stefan Beller <sbeller@google.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Stefan Beller committed
Apr 11, 2018 at 17:21 UTC
5643557e63de2cd0b81297fe975b001fa5be2c0a
2 files changed
+6
-5
replace-object.h
+2
-2
@@ -14,8 +14,8 @@ struct replace_object {
14
* This internal function is only declared here for the benefit of
15
* lookup_replace_object(). Please do not call it directly.
16
*/
17
-#define do_lookup_replace_object(r, s) do_lookup_replace_object_##r(s)
18
-extern const struct object_id *do_lookup_replace_object_the_repository(const struct object_id *oid);
17
+extern const struct object_id *do_lookup_replace_object(struct repository *r,
18
+ const struct object_id *oid);
19
20
/*
21
* If object sha1 should be replaced, return the replacement object's
replace_object.c
+4
-3
@@ -53,17 +53,18 @@ static void prepare_replace_object(struct repository *r)
53
* permanently-allocated value. This function always respects replace
54
* references, regardless of the value of check_replace_refs.
55
*/
56
-const struct object_id *do_lookup_replace_object_the_repository(const struct object_id *oid)
56
+const struct object_id *do_lookup_replace_object(struct repository *r,
57
+ const struct object_id *oid)
58
{
59
int depth = MAXREPLACEDEPTH;
60
const struct object_id *cur = oid;
61
61
- prepare_replace_object(the_repository);
62
+ prepare_replace_object(r);
63
64
/* Try to recursively replace the object */
65
while (depth-- > 0) {
66
struct replace_object *repl_obj =
66
- oidmap_get(the_repository->objects->replace_map, cur);
67
+ oidmap_get(r->objects->replace_map, cur);
68
if (!repl_obj)
69
return cur;
70
cur = &repl_obj->replacement;