1/* 2 * Various trivial helper wrappers around standard functions 3 */ 4#include "cache.h" 5 6/* 7 * There's no pack memory to release - but stay close to the Git 8 * version so wrap this away: 9 */ 10static inline void release_pack_memory(size_t size __maybe_unused, 11 int flag __maybe_unused) 12{ 13} 14 15void *xrealloc(void *ptr, size_t size) 16{ 17 void *ret = realloc(ptr, size); 18 if (!ret && !size) 19 ret = realloc(ptr, 1); 20 if (!ret) { 21 release_pack_memory(size, -1); 22 ret = realloc(ptr, size); 23 if (!ret && !size) 24 ret = realloc(ptr, 1); 25 if (!ret) 26 die("Out of memory, realloc failed"); 27 } 28 return ret; 29} 30