sha1_file: add repository argument to open_sha1_file

Add a repository argument to allow the open_sha1_file caller 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. As with the previous commits, use a macro to catch callers passing a repository other than the_repository at compile time. Signed-off-by: Stefan Beller <sbeller@google.com> Signed-off-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Stefan Beller committed Mar 23, 2018 at 18:21 UTC 2ba0bfd67f3a5b6b5e26436d899e7fd02b578bb6
1 file changed +4 -2
sha1_file.c
+4 -2
@@ -896,7 +896,9 @@ static int stat_sha1_file_the_repository(const unsigned char *sha1,
896 * Like stat_sha1_file(), but actually open the object and return the
897 * descriptor. See the caveats on the "path" parameter above.
898 */
899 -static int open_sha1_file(const unsigned char *sha1, const char **path)
899 +#define open_sha1_file(r, s, p) open_sha1_file_##r(s, p)
900 +static int open_sha1_file_the_repository(const unsigned char *sha1,
901 + const char **path)
902 {
903 int fd;
904 struct alternate_object_database *alt;
@@ -939,7 +941,7 @@ static void *map_sha1_file_1(const char *path,
941 if (path)
942 fd = git_open(path);
943 else
942 - fd = open_sha1_file(sha1, &path);
944 + fd = open_sha1_file(the_repository, sha1, &path);
945 map = NULL;
946 if (fd >= 0) {
947 struct stat st;