dir_struct: add collect_ignored option
[gitweb.git] / cache.h
diff --git a/cache.h b/cache.h
index 5e7381eb1ea5f5fa8f4e70b15bc50f45ca616d39..6761554e6ca073e9c63c74b58834ab2195cf07ce 100644 (file)
--- a/cache.h
+++ b/cache.h
@@ -225,6 +225,21 @@ extern void verify_non_filename(const char *prefix, const char *name);
 
 #define alloc_nr(x) (((x)+16)*3/2)
 
+/*
+ * Realloc the buffer pointed at by variable 'x' so that it can hold
+ * at least 'nr' entries; the number of entries currently allocated
+ * is 'alloc', using the standard growing factor alloc_nr() macro.
+ *
+ * DO NOT USE any expression with side-effect for 'x' or 'alloc'.
+ */
+#define ALLOC_GROW(x, nr, alloc) \
+       do { \
+               if ((nr) >= alloc) { \
+                       alloc = alloc_nr(alloc); \
+                       x = xrealloc((x), alloc * sizeof(*(x))); \
+               } \
+       } while(0)
+
 /* Initialize and use the cache information */
 extern int read_index(struct index_state *);
 extern int read_index_from(struct index_state *, const char *path);