formalize typename(), and add its reverse type_from_string()

Sometime typename() is used, sometimes type_names[] is accessed directly.
Let's enforce typename() all the time which allows for validating the
type.

Also let's add a function to go from a name to a type and use it instead
of manual memcpy() when appropriate.

Signed-off-by: Nicolas Pitre <nico@cam.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
This commit is contained in:
Nicolas Pitre
2007-02-26 14:55:58 -05:00
committed by Junio C Hamano
parent 9ba630318f
commit df8436622f
7 changed files with 39 additions and 48 deletions

View File

@ -604,13 +604,8 @@ static void fix_unresolved_deltas(int nr_unresolved)
data = read_sha1_file(d->base.sha1, type, &size);
if (!data)
continue;
if (!strcmp(type, blob_type)) obj_type = OBJ_BLOB;
else if (!strcmp(type, tree_type)) obj_type = OBJ_TREE;
else if (!strcmp(type, commit_type)) obj_type = OBJ_COMMIT;
else if (!strcmp(type, tag_type)) obj_type = OBJ_TAG;
else die("base object %s is of type '%s'",
sha1_to_hex(d->base.sha1), type);
obj_type = type_from_string(type);
find_delta_children(&d->base, &first, &last);
for (j = first; j <= last; j++) {
struct object_entry *child = objects + deltas[j].obj_no;