Commit ee42bb0e3d6534b8ac4d48df90b1bb85323972ea

Carlos Martín Nieto 2015-11-28T19:18:29

tree: make path len uint16_t and avoid holes This reduces the size of the struct from 32 to 26 bytes, and leaves a single padding byte at the end of the struct (which comes from the zero-length array).

diff --git a/src/tree.c b/src/tree.c
index ff0464f..d269a53 100644
--- a/src/tree.c
+++ b/src/tree.c
@@ -125,7 +125,7 @@ static git_tree_entry *alloc_entry(const char *filename)
 
 struct tree_key_search {
 	const char *filename;
-	size_t filename_len;
+	uint16_t filename_len;
 };
 
 static int homing_search_cmp(const void *key, const void *array_member)
diff --git a/src/tree.h b/src/tree.h
index 51f42ca..914d788 100644
--- a/src/tree.h
+++ b/src/tree.h
@@ -16,9 +16,9 @@
 
 struct git_tree_entry {
 	uint16_t attr;
+	uint16_t filename_len;
 	git_oid oid;
 	bool pooled;
-	size_t filename_len;
 	char filename[GIT_FLEX_ARRAY];
 };