X-Git-Url: http://mj.ucw.cz/gitweb/?a=blobdiff_plain;f=lib%2Fgbuf.h;h=0775f20cb3738bb976176a72af94918322261f9d;hb=2c9cf5b6e38800f6d79e5140f3b8565961374627;hp=c2853ba1198041a5d5463c569730cfaf05635bad;hpb=049563e01aca4e73169e9668969d9d980a4ef17c;p=libucw.git diff --git a/lib/gbuf.h b/lib/gbuf.h index c2853ba1..0775f20c 100644 --- a/lib/gbuf.h +++ b/lib/gbuf.h @@ -1,5 +1,5 @@ /* - * A simple growing buffer + * UCW Library -- A simple growing buffer * * (c) 2004, Robert Spalek * @@ -7,6 +7,9 @@ * * GBUF_TYPE data type of records stored in the buffer * GBUF_PREFIX(x) add a name prefix to all global symbols + * + * This software may be freely distributed and used according to the terms + * of the GNU Lesser General Public License. */ #include @@ -40,16 +43,13 @@ static inline void GBUF_PREFIX(realloc)(BUF_T *b, uns len) { b->len = len; - if (b->ptr) - b->ptr = xrealloc(b->ptr, len * sizeof(GBUF_TYPE)); - else - b->ptr = xmalloc(len * sizeof(GBUF_TYPE)); + b->ptr = xrealloc(b->ptr, len * sizeof(GBUF_TYPE)); } static inline void GBUF_PREFIX(grow)(BUF_T *b, uns len) { - if (len <= b->len) + if (likely(len <= b->len)) return; if (len < 2*b->len) // to ensure logarithmic cost len = 2*b->len; @@ -58,3 +58,4 @@ GBUF_PREFIX(grow)(BUF_T *b, uns len) #undef GBUF_TYPE #undef GBUF_PREFIX +#undef BUF_T