[PATCH] assorted delta code cleanup
This is a wrap-up patch including all the cleanups I've done to the delta code and its usage. The most important change is the factorization of the delta header handling code. Signed-off-by: Nicolas Pitre <nico@cam.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:

committed by
Linus Torvalds

parent
e5e3e0f500
commit
dcde55bc58
21
sha1_file.c
21
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;
|
||||
}
|
||||
|
Reference in New Issue
Block a user