Nguyễn Thái Ngọc Duy <pclouds@xxxxxxxxx> writes: > An extra field type_valid is added to carry the equivalent of OBJ_BAD > in the original "type" field. in_pack_type always contains a valid > type so we only need 3 bits for it. > ... > @@ -1570,7 +1576,7 @@ static void drop_reused_delta(struct object_entry *entry) > entry->depth = 0; > > oi.sizep = &entry->size; > - oi.typep = &entry->type; > + oi.typep = &type; > if (packed_object_info(entry->in_pack, entry->in_pack_offset, &oi) < 0) { > /* > * We failed to get the info from this pack for some reason; > @@ -1578,8 +1584,10 @@ static void drop_reused_delta(struct object_entry *entry) > * And if that fails, the error will be recorded in entry->type This "entry->type" needs updating. > * and dealt with in prepare_pack(). > */ > - entry->type = sha1_object_info(entry->idx.oid.hash, > - &entry->size); > + oe_set_type(entry, sha1_object_info(entry->idx.oid.hash, > + &entry->size)); > + } else { > + oe_set_type(entry, type); > } > }