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,
* 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;
}