X-Git-Url: http://git.madism.org/?a=blobdiff_plain;f=common%2Fmem.h;h=9d98b871745b9f0449460dcb1aeb4dc5887a71ad;hb=7fa8c1bc673add68529fa2bda8134be5089e8745;hp=44630efc2ca6c187373e052e1754b355424e5cc7;hpb=8977d252fc44ae953df4bde4a2f1c5895beea4e0;p=apps%2Fpfixtools.git diff --git a/common/mem.h b/common/mem.h index 44630ef..9d98b87 100644 --- a/common/mem.h +++ b/common/mem.h @@ -53,6 +53,14 @@ #define p_dupstr(p, len) xmemdupstr((p), (len)) #define p_realloc(pp, count) xrealloc((void*)(pp), sizeof(**(pp)) * (count)) +# define p_shrink(pp, goalnb, allocnb) \ + do { \ + if (*(allocnb) > (goalnb)) { \ + p_realloc(pp, (goalnb)); \ + *(allocnb) = (goalnb); \ + } \ + } while(0) + # define p_alloc_nr(x) (((x) + 16) * 3 / 2) # define p_allocgrow(pp, goalnb, allocnb) \ do { \