index cec19ba4489f858a0dd7f6701c2411ab6d29b938..ed83d92c5a2735b2b7f8a7fc06276acbf0df8b18 100644 (file)
--- a/cache.h
+++ b/cache.h
*/
#define ALLOC_GROW(x, nr, alloc) \
do { \
- if ((nr) >= alloc) { \
- alloc = alloc_nr(alloc); \
+ if ((nr) > alloc) { \
+ if (alloc_nr(alloc) < (nr)) \
+ alloc = (nr); \
+ else \
+ alloc = alloc_nr(alloc); \
x = xrealloc((x), alloc * sizeof(*(x))); \
} \
} while(0)