Browse Source

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
Stefan Beller 7 years ago committed by Junio C Hamano
parent
commit
e35454fa62
  1. 1
      cache.h
  2. 3
      object-store.h
  3. 4
      sha1_file.c
  4. 5
      streaming.c

1
cache.h

@ -1242,7 +1242,6 @@ extern int pretend_sha1_file(void *, unsigned long, enum object_type, unsigned c @@ -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);


3
object-store.h

@ -128,4 +128,7 @@ void raw_object_store_clear(struct raw_object_store *o); @@ -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 */

4
sha1_file.c

@ -961,7 +961,7 @@ static void *map_sha1_file_1_the_repository(const char *path, @@ -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, @@ -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;


5
streaming.c

@ -3,6 +3,8 @@ @@ -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 = { @@ -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…
Cancel
Save