Remove TYPE_* constant macros and use object_type enums consistently.

This updates the type-enumeration constants introduced to reduce
the memory footprint of "struct object" to match the type bits
already used in the packfile format, by removing the former
(i.e. TYPE_* constant macros) and using the latter (i.e. enum
object_type) throughout the code for consistency.

Eventually we can stop passing around the "type strings"
entirely, and this will help - no confusion about two different
integer enumeration.

Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
This commit is contained in:
Linus Torvalds
2006-07-11 20:45:31 -07:00
committed by Junio C Hamano
parent d3ba675aae
commit 1974632c66
22 changed files with 87 additions and 92 deletions

View File

@ -24,12 +24,19 @@ struct object_array {
#define TYPE_BITS 3
#define FLAG_BITS 27
#define TYPE_NONE 0
#define TYPE_BLOB 1
#define TYPE_TREE 2
#define TYPE_COMMIT 3
#define TYPE_TAG 4
#define TYPE_BAD 5
/*
* The object type is stored in 3 bits.
*/
enum object_type {
OBJ_NONE = 0,
OBJ_COMMIT = 1,
OBJ_TREE = 2,
OBJ_BLOB = 3,
OBJ_TAG = 4,
/* 5/6 for future expansion */
OBJ_DELTA = 7,
OBJ_BAD,
};
struct object {
unsigned parsed : 1;
@ -40,14 +47,14 @@ struct object {
};
extern int track_object_refs;
extern const char *type_names[];
extern const char *type_names[9];
extern unsigned int get_max_object_index(void);
extern struct object *get_indexed_object(unsigned int);
static inline const char *typename(unsigned int type)
{
return type_names[type > TYPE_TAG ? TYPE_BAD : type];
return type_names[type > OBJ_BAD ? OBJ_BAD : type];
}
extern struct object_refs *lookup_object_refs(struct object *);