Make trivial wrapper functions around delta base generation and freeing
This doesn't change any code, it just creates a point for where we'd actually do the caching of delta bases that have been generated. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
This commit is contained in:
parent
5bb44a5103
commit
62f255ad58
16
sha1_file.c
16
sha1_file.c
@ -1352,6 +1352,18 @@ static void *unpack_compressed_entry(struct packed_git *p,
|
|||||||
return buffer;
|
return buffer;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void *cache_or_unpack_entry(struct packed_git *p, off_t base_offset,
|
||||||
|
unsigned long *base_size, enum object_type *type)
|
||||||
|
{
|
||||||
|
return unpack_entry(p, base_offset, type, base_size);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void add_delta_base_cache(struct packed_git *p, off_t base_offset,
|
||||||
|
void *base, unsigned long base_size, enum object_type type)
|
||||||
|
{
|
||||||
|
free(base);
|
||||||
|
}
|
||||||
|
|
||||||
static void *unpack_delta_entry(struct packed_git *p,
|
static void *unpack_delta_entry(struct packed_git *p,
|
||||||
struct pack_window **w_curs,
|
struct pack_window **w_curs,
|
||||||
off_t curpos,
|
off_t curpos,
|
||||||
@ -1365,7 +1377,7 @@ static void *unpack_delta_entry(struct packed_git *p,
|
|||||||
off_t base_offset;
|
off_t base_offset;
|
||||||
|
|
||||||
base_offset = get_delta_base(p, w_curs, &curpos, *type, obj_offset);
|
base_offset = get_delta_base(p, w_curs, &curpos, *type, obj_offset);
|
||||||
base = unpack_entry(p, base_offset, type, &base_size);
|
base = cache_or_unpack_entry(p, base_offset, &base_size, type);
|
||||||
if (!base)
|
if (!base)
|
||||||
die("failed to read delta base object"
|
die("failed to read delta base object"
|
||||||
" at %"PRIuMAX" from %s",
|
" at %"PRIuMAX" from %s",
|
||||||
@ -1378,7 +1390,7 @@ static void *unpack_delta_entry(struct packed_git *p,
|
|||||||
if (!result)
|
if (!result)
|
||||||
die("failed to apply delta");
|
die("failed to apply delta");
|
||||||
free(delta_data);
|
free(delta_data);
|
||||||
free(base);
|
add_delta_base_cache(p, base_offset, base, base_size, *type);
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user