Skip to content

Commit

Permalink
[PATCH] Mark blobs as parsed when they're actually parsed
Browse files Browse the repository at this point in the history
This eliminates the special case for blobs versus other types of
objects. Now the scheme is entirely regular and I won't introduce stupid
bugs. (And fsck-cache doesn't have to do the do-nothing parse)

Signed-Off-By: Daniel Barkalow <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
  • Loading branch information
iabervon authored and Linus Torvalds committed Apr 28, 2005
1 parent 3a663fd commit a510bfa
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 1 deletion.
20 changes: 19 additions & 1 deletion blob.c
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,28 @@ struct blob *lookup_blob(unsigned char *sha1)
ret->object.type = blob_type;
return ret;
}
if (obj->parsed && obj->type != blob_type) {
if (obj->type != blob_type) {
error("Object %s is a %s, not a blob",
sha1_to_hex(sha1), obj->type);
return NULL;
}
return (struct blob *) obj;
}

int parse_blob(struct blob *item)
{
char type[20];
void *buffer;
unsigned long size;
if (item->object.parsed)
return 0;
item->object.parsed = 1;
buffer = read_sha1_file(item->object.sha1, type, &size);
if (!buffer)
return error("Could not read %s",
sha1_to_hex(item->object.sha1));
if (strcmp(type, blob_type))
return error("Object %s not a blob",
sha1_to_hex(item->object.sha1));
return 0;
}
2 changes: 2 additions & 0 deletions blob.h
Original file line number Diff line number Diff line change
Expand Up @@ -11,4 +11,6 @@ struct blob {

struct blob *lookup_blob(unsigned char *sha1);

int parse_blob(struct blob *item);

#endif /* BLOB_H */

0 comments on commit a510bfa

Please sign in to comment.