struct object *parse_object_buffer(const unsigned char *sha1, enum object_type type, unsigned long size, void *buffer, int *eaten_p)
{
+ struct object_id oid;
struct object *obj;
*eaten_p = 0;
+ hashcpy(oid.hash, sha1);
+
obj = NULL;
if (type == OBJ_BLOB) {
- struct blob *blob = lookup_blob(sha1);
+ struct blob *blob = lookup_blob(&oid);
if (blob) {
if (parse_blob_buffer(blob, buffer, size))
return NULL;
}
}
} else if (type == OBJ_COMMIT) {
- struct commit *commit = lookup_commit(sha1);
+ struct commit *commit = lookup_commit(&oid);
if (commit) {
if (parse_commit_buffer(commit, buffer, size))
return NULL;
const unsigned char *repl = lookup_replace_object(sha1);
void *buffer;
struct object *obj;
+ struct object_id oid;
+
+ hashcpy(oid.hash, sha1);
- obj = lookup_object(sha1);
+ obj = lookup_object(oid.hash);
if (obj && obj->parsed)
return obj;
error("sha1 mismatch %s", sha1_to_hex(repl));
return NULL;
}
- parse_blob_buffer(lookup_blob(sha1), NULL, 0);
+ parse_blob_buffer(lookup_blob(&oid), NULL, 0);
return lookup_object(sha1);
}