replace-object: allow do_lookup_replace_object to handle arbitrary repositories
authorStefan Beller <sbeller@google.com>
Thu, 12 Apr 2018 00:21:17 +0000 (17:21 -0700)
committerJunio C Hamano <gitster@pobox.com>
Thu, 12 Apr 2018 02:38:57 +0000 (11:38 +0900)
Signed-off-by: Stefan Beller <sbeller@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
replace-object.h
replace_object.c
index dff57bfa1e20aff152ce4a2acfd2b2c1db144015..f05354c8616748964cdb3456f93f71ac06fe19c4 100644 (file)
@@ -14,8 +14,8 @@ struct replace_object {
  * This internal function is only declared here for the benefit of
  * lookup_replace_object().  Please do not call it directly.
  */
-#define do_lookup_replace_object(r, s) do_lookup_replace_object_##r(s)
-extern const struct object_id *do_lookup_replace_object_the_repository(const struct object_id *oid);
+extern const struct object_id *do_lookup_replace_object(struct repository *r,
+                                                       const struct object_id *oid);
 
 /*
  * If object sha1 should be replaced, return the replacement object's
index eae52c66f3f69d0a39da5c3761467ae422af5ea5..246b98cd4f1e4d229109bbeb8ffe90731df43df0 100644 (file)
@@ -53,17 +53,18 @@ static void prepare_replace_object(struct repository *r)
  * permanently-allocated value.  This function always respects replace
  * references, regardless of the value of check_replace_refs.
  */
-const struct object_id *do_lookup_replace_object_the_repository(const struct object_id *oid)
+const struct object_id *do_lookup_replace_object(struct repository *r,
+                                                const struct object_id *oid)
 {
        int depth = MAXREPLACEDEPTH;
        const struct object_id *cur = oid;
 
-       prepare_replace_object(the_repository);
+       prepare_replace_object(r);
 
        /* Try to recursively replace the object */
        while (depth-- > 0) {
                struct replace_object *repl_obj =
-                       oidmap_get(the_repository->objects->replace_map, cur);
+                       oidmap_get(r->objects->replace_map, cur);
                if (!repl_obj)
                        return cur;
                cur = &repl_obj->replacement;