summaryrefslogtreecommitdiff
path: root/tree.h
diff options
context:
space:
mode:
authorLibravatar Linus Torvalds <torvalds@osdl.org>2006-05-28 15:10:04 -0700
committerLibravatar Junio C Hamano <junkio@cox.net>2006-05-28 19:40:18 -0700
commita755dfe45c10ccd9f180d3c267602ad18d127d6a (patch)
tree2693d3d277325ab3ff792259d939d96402e2db72 /tree.h
parentAdd raw tree buffer info to "struct tree" (diff)
downloadtgif-a755dfe45c10ccd9f180d3c267602ad18d127d6a.tar.xz
Make "tree_entry" have a SHA1 instead of a union of object pointers
This is preparatory work for further cleanups, where we try to make tree_entry look more like the more efficient tree-walk descriptor. Instead of having a union of pointers to blob/tree/objects, this just makes "struct tree_entry" have the raw SHA1, and makes all the users use that instead (often that implies adding a "lookup_tree(..)" on the sha1, but sometimes the user just wanted the SHA1 in the first place, and it just avoids an unnecessary indirection). Signed-off-by: Linus Torvalds <torvalds@osdl.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
Diffstat (limited to 'tree.h')
-rw-r--r--tree.h8
1 files changed, 2 insertions, 6 deletions
diff --git a/tree.h b/tree.h
index 066ac5d5bf..a27bae41ba 100644
--- a/tree.h
+++ b/tree.h
@@ -13,11 +13,7 @@ struct tree_entry_list {
unsigned zeropad : 1;
unsigned int mode;
const char *name;
- union {
- struct object *any;
- struct tree *tree;
- struct blob *blob;
- } item;
+ const unsigned char *sha1;
};
struct tree {
@@ -37,7 +33,7 @@ int parse_tree(struct tree *tree);
struct tree *parse_tree_indirect(const unsigned char *sha1);
#define READ_TREE_RECURSIVE 1
-typedef int (*read_tree_fn_t)(unsigned char *, const char *, int, const char *, unsigned int, int);
+typedef int (*read_tree_fn_t)(const unsigned char *, const char *, int, const char *, unsigned int, int);
extern int read_tree_recursive(struct tree *tree,
const char *base, int baselen,