sha1_file: allow sha1_loose_object_info to handle arbitrary repositories
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>maint
parent
bd27f50c80
commit
4a7c05f7d7
11
sha1_file.c
11
sha1_file.c
|
@ -1149,10 +1149,9 @@ int parse_sha1_header(const char *hdr, unsigned long *sizep)
|
||||||
return parse_sha1_header_extended(hdr, &oi, 0);
|
return parse_sha1_header_extended(hdr, &oi, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
#define sha1_loose_object_info(r, s, o, f) sha1_loose_object_info_##r(s, o, f)
|
static int sha1_loose_object_info(struct repository *r,
|
||||||
static int sha1_loose_object_info_the_repository(const unsigned char *sha1,
|
const unsigned char *sha1,
|
||||||
struct object_info *oi,
|
struct object_info *oi, int flags)
|
||||||
int flags)
|
|
||||||
{
|
{
|
||||||
int status = 0;
|
int status = 0;
|
||||||
unsigned long mapsize;
|
unsigned long mapsize;
|
||||||
|
@ -1176,14 +1175,14 @@ static int sha1_loose_object_info_the_repository(const unsigned char *sha1,
|
||||||
if (!oi->typep && !oi->typename && !oi->sizep && !oi->contentp) {
|
if (!oi->typep && !oi->typename && !oi->sizep && !oi->contentp) {
|
||||||
const char *path;
|
const char *path;
|
||||||
struct stat st;
|
struct stat st;
|
||||||
if (stat_sha1_file(the_repository, sha1, &st, &path) < 0)
|
if (stat_sha1_file(r, sha1, &st, &path) < 0)
|
||||||
return -1;
|
return -1;
|
||||||
if (oi->disk_sizep)
|
if (oi->disk_sizep)
|
||||||
*oi->disk_sizep = st.st_size;
|
*oi->disk_sizep = st.st_size;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
map = map_sha1_file(the_repository, sha1, &mapsize);
|
map = map_sha1_file(r, sha1, &mapsize);
|
||||||
if (!map)
|
if (!map)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue