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>
This commit is contained in:
Stefan Beller 2018-03-23 18:21:12 +01:00 committed by Junio C Hamano
parent fbe33e2798
commit 2ba0bfd67f

View file

@ -896,7 +896,9 @@ static int stat_sha1_file_the_repository(const unsigned char *sha1,
* Like stat_sha1_file(), but actually open the object and return the
* descriptor. See the caveats on the "path" parameter above.
*/
static int open_sha1_file(const unsigned char *sha1, const char **path)
#define open_sha1_file(r, s, p) open_sha1_file_##r(s, p)
static int open_sha1_file_the_repository(const unsigned char *sha1,
const char **path)
{
int fd;
struct alternate_object_database *alt;
@ -939,7 +941,7 @@ static void *map_sha1_file_1(const char *path,
if (path)
fd = git_open(path);
else
fd = open_sha1_file(sha1, &path);
fd = open_sha1_file(the_repository, sha1, &path);
map = NULL;
if (fd >= 0) {
struct stat st;