sha1_file: add repository argument to map_sha1_file
Add a repository argument to allow map_sha1_file callers to be more specific about which repository to handle. 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. While at it, move the declaration to object-store.h, where it should be easier to find. 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
332295d7e4
commit
e35454fa62
1
cache.h
1
cache.h
|
@ -1242,7 +1242,6 @@ extern int pretend_sha1_file(void *, unsigned long, enum object_type, unsigned c
|
|||
extern int force_object_loose(const unsigned char *sha1, time_t mtime);
|
||||
extern int git_open_cloexec(const char *name, int flags);
|
||||
#define git_open(name) git_open_cloexec(name, O_RDONLY)
|
||||
extern void *map_sha1_file(const unsigned char *sha1, unsigned long *size);
|
||||
extern int unpack_sha1_header(git_zstream *stream, unsigned char *map, unsigned long mapsize, void *buffer, unsigned long bufsiz);
|
||||
extern int parse_sha1_header(const char *hdr, unsigned long *sizep);
|
||||
|
||||
|
|
|
@ -128,4 +128,7 @@ void raw_object_store_clear(struct raw_object_store *o);
|
|||
#define sha1_file_name(r, b, s) sha1_file_name_##r(b, s)
|
||||
void sha1_file_name_the_repository(struct strbuf *buf, const unsigned char *sha1);
|
||||
|
||||
#define map_sha1_file(r, s, sz) map_sha1_file_##r(s, sz)
|
||||
void *map_sha1_file_the_repository(const unsigned char *sha1, unsigned long *size);
|
||||
|
||||
#endif /* OBJECT_STORE_H */
|
||||
|
|
|
@ -961,7 +961,7 @@ static void *map_sha1_file_1_the_repository(const char *path,
|
|||
return map;
|
||||
}
|
||||
|
||||
void *map_sha1_file(const unsigned char *sha1, unsigned long *size)
|
||||
void *map_sha1_file_the_repository(const unsigned char *sha1, unsigned long *size)
|
||||
{
|
||||
return map_sha1_file_1(the_repository, NULL, sha1, size);
|
||||
}
|
||||
|
@ -1185,7 +1185,7 @@ static int sha1_loose_object_info(const unsigned char *sha1,
|
|||
return 0;
|
||||
}
|
||||
|
||||
map = map_sha1_file(sha1, &mapsize);
|
||||
map = map_sha1_file(the_repository, sha1, &mapsize);
|
||||
if (!map)
|
||||
return -1;
|
||||
|
||||
|
|
|
@ -3,6 +3,8 @@
|
|||
*/
|
||||
#include "cache.h"
|
||||
#include "streaming.h"
|
||||
#include "repository.h"
|
||||
#include "object-store.h"
|
||||
#include "packfile.h"
|
||||
|
||||
enum input_source {
|
||||
|
@ -335,7 +337,8 @@ static struct stream_vtbl loose_vtbl = {
|
|||
|
||||
static open_method_decl(loose)
|
||||
{
|
||||
st->u.loose.mapped = map_sha1_file(sha1, &st->u.loose.mapsize);
|
||||
st->u.loose.mapped = map_sha1_file(the_repository,
|
||||
sha1, &st->u.loose.mapsize);
|
||||
if (!st->u.loose.mapped)
|
||||
return -1;
|
||||
if ((unpack_sha1_header(&st->z,
|
||||
|
|
Loading…
Reference in New Issue