packfile: convert unpack_entry to struct object_id
Convert unpack_entry and read_object to use struct object_id. Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
d169d6644c
commit
4310b0c441
22
packfile.c
22
packfile.c
@ -1452,7 +1452,7 @@ struct unpack_entry_stack_ent {
|
|||||||
unsigned long size;
|
unsigned long size;
|
||||||
};
|
};
|
||||||
|
|
||||||
static void *read_object(const unsigned char *sha1, enum object_type *type,
|
static void *read_object(const struct object_id *oid, enum object_type *type,
|
||||||
unsigned long *size)
|
unsigned long *size)
|
||||||
{
|
{
|
||||||
struct object_info oi = OBJECT_INFO_INIT;
|
struct object_info oi = OBJECT_INFO_INIT;
|
||||||
@ -1461,7 +1461,7 @@ static void *read_object(const unsigned char *sha1, enum object_type *type,
|
|||||||
oi.sizep = size;
|
oi.sizep = size;
|
||||||
oi.contentp = &content;
|
oi.contentp = &content;
|
||||||
|
|
||||||
if (sha1_object_info_extended(sha1, &oi, 0) < 0)
|
if (sha1_object_info_extended(oid->hash, &oi, 0) < 0)
|
||||||
return NULL;
|
return NULL;
|
||||||
return content;
|
return content;
|
||||||
}
|
}
|
||||||
@ -1501,11 +1501,11 @@ void *unpack_entry(struct packed_git *p, off_t obj_offset,
|
|||||||
struct revindex_entry *revidx = find_pack_revindex(p, obj_offset);
|
struct revindex_entry *revidx = find_pack_revindex(p, obj_offset);
|
||||||
off_t len = revidx[1].offset - obj_offset;
|
off_t len = revidx[1].offset - obj_offset;
|
||||||
if (check_pack_crc(p, &w_curs, obj_offset, len, revidx->nr)) {
|
if (check_pack_crc(p, &w_curs, obj_offset, len, revidx->nr)) {
|
||||||
const unsigned char *sha1 =
|
struct object_id oid;
|
||||||
nth_packed_object_sha1(p, revidx->nr);
|
nth_packed_object_oid(&oid, p, revidx->nr);
|
||||||
error("bad packed object CRC for %s",
|
error("bad packed object CRC for %s",
|
||||||
sha1_to_hex(sha1));
|
oid_to_hex(&oid));
|
||||||
mark_bad_packed_object(p, sha1);
|
mark_bad_packed_object(p, oid.hash);
|
||||||
data = NULL;
|
data = NULL;
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
@ -1588,16 +1588,16 @@ void *unpack_entry(struct packed_git *p, off_t obj_offset,
|
|||||||
* of a corrupted pack, and is better than failing outright.
|
* of a corrupted pack, and is better than failing outright.
|
||||||
*/
|
*/
|
||||||
struct revindex_entry *revidx;
|
struct revindex_entry *revidx;
|
||||||
const unsigned char *base_sha1;
|
struct object_id base_oid;
|
||||||
revidx = find_pack_revindex(p, obj_offset);
|
revidx = find_pack_revindex(p, obj_offset);
|
||||||
if (revidx) {
|
if (revidx) {
|
||||||
base_sha1 = nth_packed_object_sha1(p, revidx->nr);
|
nth_packed_object_oid(&base_oid, p, revidx->nr);
|
||||||
error("failed to read delta base object %s"
|
error("failed to read delta base object %s"
|
||||||
" at offset %"PRIuMAX" from %s",
|
" at offset %"PRIuMAX" from %s",
|
||||||
sha1_to_hex(base_sha1), (uintmax_t)obj_offset,
|
oid_to_hex(&base_oid), (uintmax_t)obj_offset,
|
||||||
p->pack_name);
|
p->pack_name);
|
||||||
mark_bad_packed_object(p, base_sha1);
|
mark_bad_packed_object(p, base_oid.hash);
|
||||||
base = read_object(base_sha1, &type, &base_size);
|
base = read_object(&base_oid, &type, &base_size);
|
||||||
external_base = base;
|
external_base = base;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user