if (!lost->util)
lost->util = xcalloc(1, sizeof(*ui));
ui = lost->util;
- hashcpy(ui->sha1[stage - 1], ce->oid.hash);
+ oidcpy(&ui->oid[stage - 1], &ce->oid);
ui->mode[stage - 1] = ce->ce_mode;
}
for (i = 0; i < 3; i++) {
if (!ui->mode[i])
continue;
- strbuf_add(sb, ui->sha1[i], 20);
+ strbuf_add(sb, ui->oid[i].hash, the_hash_algo->rawsz);
}
}
}
size_t len;
char *endptr;
int i;
+ const unsigned rawsz = the_hash_algo->rawsz;
resolve_undo = xcalloc(1, sizeof(*resolve_undo));
resolve_undo->strdup_strings = 1;
for (i = 0; i < 3; i++) {
if (!ui->mode[i])
continue;
- if (size < 20)
+ if (size < rawsz)
goto error;
- hashcpy(ui->sha1[i], (const unsigned char *)data);
- size -= 20;
- data += 20;
+ memcpy(ui->oid[i].hash, (const unsigned char *)data, rawsz);
+ size -= rawsz;
+ data += rawsz;
}
}
return resolve_undo;
struct cache_entry *nce;
if (!ru->mode[i])
continue;
- nce = make_cache_entry(ru->mode[i], ru->sha1[i],
+ nce = make_cache_entry(ru->mode[i], ru->oid[i].hash,
name, i + 1, 0);
if (matched)
nce->ce_flags |= CE_MATCHED;