pack: convert struct pack_idx_entry to struct object_id
Convert struct pack_idx_entry to use struct object_id by changing the definition and applying the following semantic patch, plus the standard object_id transforms: @@ struct pack_idx_entry E1; @@ - E1.sha1 + E1.oid.hash @@ struct pack_idx_entry *E1; @@ - E1->sha1 + E1->oid.hash Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
committed by
Junio C Hamano
parent
bc83266abe
commit
e6a492b7be
@ -747,13 +747,13 @@ static int compare_objects(const unsigned char *buf, unsigned long size,
|
||||
ssize_t len = read_istream(data->st, data->buf, size);
|
||||
if (len == 0)
|
||||
die(_("SHA1 COLLISION FOUND WITH %s !"),
|
||||
sha1_to_hex(data->entry->idx.sha1));
|
||||
oid_to_hex(&data->entry->idx.oid));
|
||||
if (len < 0)
|
||||
die(_("unable to read %s"),
|
||||
sha1_to_hex(data->entry->idx.sha1));
|
||||
oid_to_hex(&data->entry->idx.oid));
|
||||
if (memcmp(buf, data->buf, len))
|
||||
die(_("SHA1 COLLISION FOUND WITH %s !"),
|
||||
sha1_to_hex(data->entry->idx.sha1));
|
||||
oid_to_hex(&data->entry->idx.oid));
|
||||
size -= len;
|
||||
buf += len;
|
||||
}
|
||||
@ -771,12 +771,12 @@ static int check_collison(struct object_entry *entry)
|
||||
|
||||
memset(&data, 0, sizeof(data));
|
||||
data.entry = entry;
|
||||
data.st = open_istream(entry->idx.sha1, &type, &size, NULL);
|
||||
data.st = open_istream(entry->idx.oid.hash, &type, &size, NULL);
|
||||
if (!data.st)
|
||||
return -1;
|
||||
if (size != entry->size || type != entry->type)
|
||||
die(_("SHA1 COLLISION FOUND WITH %s !"),
|
||||
sha1_to_hex(entry->idx.sha1));
|
||||
oid_to_hex(&entry->idx.oid));
|
||||
unpack_data(entry, compare_objects, &data);
|
||||
close_istream(data.st);
|
||||
free(data.buf);
|
||||
@ -957,9 +957,10 @@ static void resolve_delta(struct object_entry *delta_obj,
|
||||
if (!result->data)
|
||||
bad_object(delta_obj->idx.offset, _("failed to apply delta"));
|
||||
hash_sha1_file(result->data, result->size,
|
||||
typename(delta_obj->real_type), delta_obj->idx.sha1);
|
||||
typename(delta_obj->real_type),
|
||||
delta_obj->idx.oid.hash);
|
||||
sha1_object(result->data, NULL, result->size, delta_obj->real_type,
|
||||
delta_obj->idx.sha1);
|
||||
delta_obj->idx.oid.hash);
|
||||
counter_lock();
|
||||
nr_resolved_deltas++;
|
||||
counter_unlock();
|
||||
@ -989,7 +990,7 @@ static struct base_data *find_unresolved_deltas_1(struct base_data *base,
|
||||
struct base_data *prev_base)
|
||||
{
|
||||
if (base->ref_last == -1 && base->ofs_last == -1) {
|
||||
find_ref_delta_children(base->obj->idx.sha1,
|
||||
find_ref_delta_children(base->obj->idx.oid.hash,
|
||||
&base->ref_first, &base->ref_last,
|
||||
OBJ_REF_DELTA);
|
||||
|
||||
@ -1130,7 +1131,8 @@ static void parse_pack_objects(unsigned char *sha1)
|
||||
for (i = 0; i < nr_objects; i++) {
|
||||
struct object_entry *obj = &objects[i];
|
||||
void *data = unpack_raw_entry(obj, &ofs_delta->offset,
|
||||
ref_delta_sha1, obj->idx.sha1);
|
||||
ref_delta_sha1,
|
||||
obj->idx.oid.hash);
|
||||
obj->real_type = obj->type;
|
||||
if (obj->type == OBJ_OFS_DELTA) {
|
||||
nr_ofs_deltas++;
|
||||
@ -1146,7 +1148,8 @@ static void parse_pack_objects(unsigned char *sha1)
|
||||
obj->real_type = OBJ_BAD;
|
||||
nr_delays++;
|
||||
} else
|
||||
sha1_object(data, NULL, obj->size, obj->type, obj->idx.sha1);
|
||||
sha1_object(data, NULL, obj->size, obj->type,
|
||||
obj->idx.oid.hash);
|
||||
free(data);
|
||||
display_progress(progress, i+1);
|
||||
}
|
||||
@ -1172,7 +1175,8 @@ static void parse_pack_objects(unsigned char *sha1)
|
||||
if (obj->real_type != OBJ_BAD)
|
||||
continue;
|
||||
obj->real_type = obj->type;
|
||||
sha1_object(NULL, obj, obj->size, obj->type, obj->idx.sha1);
|
||||
sha1_object(NULL, obj, obj->size, obj->type,
|
||||
obj->idx.oid.hash);
|
||||
nr_delays--;
|
||||
}
|
||||
if (nr_delays)
|
||||
@ -1330,7 +1334,7 @@ static struct object_entry *append_obj_to_pack(struct sha1file *f,
|
||||
obj[1].idx.offset += write_compressed(f, buf, size);
|
||||
obj[0].idx.crc32 = crc32_end(f);
|
||||
sha1flush(f);
|
||||
hashcpy(obj->idx.sha1, sha1);
|
||||
hashcpy(obj->idx.oid.hash, sha1);
|
||||
return obj;
|
||||
}
|
||||
|
||||
@ -1581,13 +1585,14 @@ static void show_pack_info(int stat_only)
|
||||
if (stat_only)
|
||||
continue;
|
||||
printf("%s %-6s %lu %lu %"PRIuMAX,
|
||||
sha1_to_hex(obj->idx.sha1),
|
||||
oid_to_hex(&obj->idx.oid),
|
||||
typename(obj->real_type), obj->size,
|
||||
(unsigned long)(obj[1].idx.offset - obj->idx.offset),
|
||||
(uintmax_t)obj->idx.offset);
|
||||
if (is_delta_type(obj->type)) {
|
||||
struct object_entry *bobj = &objects[obj_stat[i].base_object_no];
|
||||
printf(" %u %s", obj_stat[i].delta_depth, sha1_to_hex(bobj->idx.sha1));
|
||||
printf(" %u %s", obj_stat[i].delta_depth,
|
||||
oid_to_hex(&bobj->idx.oid));
|
||||
}
|
||||
putchar('\n');
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user