- free(buffer);
- if (!strcmp(type, "blob")) {
- struct blob *ret = lookup_blob(sha1);
- parse_blob(ret);
- return &ret->object;
+ if (is_delta) {
+ struct delta *delta = lookup_delta(sha1);
+ parse_delta_buffer(delta, buffer, size);
+ obj = (struct object *) delta;
+ } else if (!strcmp(type, "blob")) {
+ struct blob *blob = lookup_blob(sha1);
+ parse_blob_buffer(blob, buffer, size);
+ obj = &blob->object;