4 const char *blob_type
= "blob";
6 struct blob
*lookup_blob(const unsigned char *sha1
)
8 struct object
*obj
= lookup_object(sha1
);
10 return create_object(sha1
, OBJ_BLOB
, alloc_blob_node());
13 if (obj
->type
!= OBJ_BLOB
) {
14 error("Object %s is a %s, not a blob",
15 sha1_to_hex(sha1
), typename(obj
->type
));
18 return (struct blob
*) obj
;
21 int parse_blob_buffer(struct blob
*item
, void *buffer
, unsigned long size
)
23 item
->object
.parsed
= 1;
27 int parse_blob(struct blob
*item
)
29 enum object_type type
;
34 if (item
->object
.parsed
)
36 buffer
= read_sha1_file(item
->object
.sha1
, &type
, &size
);
38 return error("Could not read %s",
39 sha1_to_hex(item
->object
.sha1
));
41 return error("Object %s not a blob",
42 sha1_to_hex(item
->object
.sha1
));
43 ret
= parse_blob_buffer(item
, buffer
, size
);