summaryrefslogtreecommitdiff
path: root/sha1_file.c
diff options
context:
space:
mode:
authorLibravatar Shawn Pearce <spearce@spearce.org>2006-08-26 04:11:36 -0400
committerLibravatar Junio C Hamano <junkio@cox.net>2006-08-26 17:35:18 -0700
commit5a18f540a5f8f8ba8b4f8027ed7742bfec85433c (patch)
tree413fd3696ec2aa9303131f4ec46ab60f96915610 /sha1_file.c
parentReuse compression code in unpack_compressed_entry. (diff)
downloadtgif-5a18f540a5f8f8ba8b4f8027ed7742bfec85433c.tar.xz
Cleanup unpack_entry_gently and friends to use type_name array.
[PATCH 3/5] Cleanup unpack_entry_gently and friends to use type_name array. This change allows combining all of the non-delta entries into a single case, as well as to remove an unnecessary local variable in unpack_entry_gently. Signed-off-by: Shawn O. Pearce <spearce@spearce.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
Diffstat (limited to 'sha1_file.c')
-rw-r--r--sha1_file.c34
1 files changed, 6 insertions, 28 deletions
diff --git a/sha1_file.c b/sha1_file.c
index 3d7358fe72..461768c317 100644
--- a/sha1_file.c
+++ b/sha1_file.c
@@ -996,16 +996,10 @@ void packed_object_info_detail(struct pack_entry *e,
}
switch (kind) {
case OBJ_COMMIT:
- strcpy(type, commit_type);
- break;
case OBJ_TREE:
- strcpy(type, tree_type);
- break;
case OBJ_BLOB:
- strcpy(type, blob_type);
- break;
case OBJ_TAG:
- strcpy(type, tag_type);
+ strcpy(type, type_names[kind]);
break;
default:
die("corrupted pack file %s containing object of kind %d",
@@ -1036,16 +1030,10 @@ static int packed_object_info(struct pack_entry *entry,
unuse_packed_git(p);
return retval;
case OBJ_COMMIT:
- strcpy(type, commit_type);
- break;
case OBJ_TREE:
- strcpy(type, tree_type);
- break;
case OBJ_BLOB:
- strcpy(type, blob_type);
- break;
case OBJ_TAG:
- strcpy(type, tag_type);
+ strcpy(type, type_names[kind]);
break;
default:
die("corrupted pack file %s containing object of kind %d",
@@ -1143,33 +1131,23 @@ void *unpack_entry_gently(struct pack_entry *entry,
unsigned long offset, size, left;
unsigned char *pack;
enum object_type kind;
- void *retval;
offset = unpack_object_header(p, entry->offset, &kind, &size);
pack = (unsigned char *) p->pack_base + offset;
left = p->pack_size - offset;
switch (kind) {
case OBJ_DELTA:
- retval = unpack_delta_entry(pack, size, left, type, sizep, p);
- return retval;
+ return unpack_delta_entry(pack, size, left, type, sizep, p);
case OBJ_COMMIT:
- strcpy(type, commit_type);
- break;
case OBJ_TREE:
- strcpy(type, tree_type);
- break;
case OBJ_BLOB:
- strcpy(type, blob_type);
- break;
case OBJ_TAG:
- strcpy(type, tag_type);
- break;
+ strcpy(type, type_names[kind]);
+ *sizep = size;
+ return unpack_compressed_entry(pack, size, left);
default:
return NULL;
}
- *sizep = size;
- retval = unpack_compressed_entry(pack, size, left);
- return retval;
}
int num_packed_objects(const struct packed_git *p)