6 struct object_list
*next
;
12 struct object
*ref
[FLEX_ARRAY
]; /* more */
19 unsigned char sha1
[20];
21 struct object_refs
*refs
;
25 extern int track_object_refs
;
26 extern int obj_allocs
;
27 extern struct object
**objs
;
30 struct object
*lookup_object(const unsigned char *sha1
);
32 /** Returns the object, having looked it up as being the given type. **/
33 struct object
*lookup_object_type(const unsigned char *sha1
, const char *type
);
35 void created_object(const unsigned char *sha1
, struct object
*obj
);
37 /** Returns the object, having parsed it to find out what it is. **/
38 struct object
*parse_object(const unsigned char *sha1
);
40 /** Returns the object, with potentially excess memory allocated. **/
41 struct object
*lookup_unknown_object(const unsigned char *sha1
);
43 struct object_refs
*alloc_object_refs(unsigned count
);
44 void set_object_refs(struct object
*obj
, struct object_refs
*refs
);
46 void mark_reachable(struct object
*obj
, unsigned int mask
);
48 struct object_list
*object_list_insert(struct object
*item
,
49 struct object_list
**list_p
);
51 void object_list_append(struct object
*item
,
52 struct object_list
**list_p
);
54 unsigned object_list_length(struct object_list
*list
);
56 int object_list_contains(struct object_list
*list
, struct object
*obj
);