-static inline void *xmalloc(ssize_t size) {
- void *mem;
-
- if (size <= 0)
- return NULL;
-
- mem = calloc(size, 1);
- if (!mem)
- abort();
- return mem;
-}
-
-static inline void *xrealloc(void *mem, ssize_t newsize) {
- mem = realloc(mem, newsize);
- if (!mem)
- abort();
- return mem;
-}
-
-static inline void *xmemdup(const void *src, ssize_t size) {
- return memcpy(xmalloc(size), src, size);
-}
-
-static inline void *xmemdupstr(const void *src, ssize_t len) {
- char *res = xmalloc(len + 1);
- memcpy(res, src, len);
- res[len] = '\0';
- return res;
-}
-