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];
};