/* * Copyright (C) 2018 Tomasz Kramkowski * SPDX-License-Identifier: MIT */ #include #include "ensize.h" #include "eprintf.h" // ensize: realloc p if it is smaller than count given current size void *ensize(void *p, size_t selem, size_t nelem, size_t *cur, size_t init) { assert(cur != NULL); if (*cur >= nelem * selem) return p; if (*cur == 0) *cur = init * selem; else *cur *= 2; return erealloc(p, *cur); }