diff options
Diffstat (limited to 'sha1_file.c')
-rw-r--r-- | sha1_file.c | 21 |
1 files changed, 3 insertions, 18 deletions
diff --git a/sha1_file.c b/sha1_file.c index f6cf180bd4..737ecb4800 100644 --- a/sha1_file.c +++ b/sha1_file.c @@ -592,22 +592,6 @@ void * unpack_sha1_file(void *map, unsigned long mapsize, char *type, unsigned l return unpack_sha1_rest(&stream, hdr, *size); } -static unsigned long parse_delta_size(unsigned char **p) -{ - unsigned char c; - unsigned long size = 0; - unsigned shift = 0; - unsigned char *data = *p; - - do { - c = *data++; - size += (c & 0x7f) << shift; - shift += 7; - } while (c & 0x80); - *p = data; - return size; -} - static int packed_delta_info(unsigned char *base_sha1, unsigned long delta_size, unsigned long left, @@ -645,11 +629,12 @@ static int packed_delta_info(unsigned char *base_sha1, * the result size. Verify the base size while we are at it. */ data = delta_head; - verify_base_size = parse_delta_size(&data); - result_size = parse_delta_size(&data); + verify_base_size = get_delta_hdr_size(&data); if (verify_base_size != base_size) die("delta base size mismatch"); + /* Read the result size */ + result_size = get_delta_hdr_size(&data); *sizep = result_size; return 0; } |