summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/polyp/xmalloc.c6
-rw-r--r--src/polyp/xmalloc.h17
2 files changed, 22 insertions, 1 deletions
diff --git a/src/polyp/xmalloc.c b/src/polyp/xmalloc.c
index 4c8689a6..1deeebd8 100644
--- a/src/polyp/xmalloc.c
+++ b/src/polyp/xmalloc.c
@@ -121,3 +121,9 @@ char *pa_xstrndup(const char *s, size_t l) {
}
}
+void pa_xfree(void *p) {
+ if (!p)
+ return;
+
+ free(p);
+}
diff --git a/src/polyp/xmalloc.h b/src/polyp/xmalloc.h
index 2946011a..9d91d8dc 100644
--- a/src/polyp/xmalloc.h
+++ b/src/polyp/xmalloc.h
@@ -27,14 +27,29 @@
#include <limits.h>
#include <assert.h>
+/** \file
+ * Memory allocation functions.
+ */
+
+/** Allocate the specified number of bytes, just like malloc() does. However, in case of OOM, terminate */
void* pa_xmalloc(size_t l);
+
+/** Same as pa_xmalloc(), but initialize allocated memory to 0 */
void *pa_xmalloc0(size_t l);
+
+/** The combination of pa_xmalloc() and realloc() */
void *pa_xrealloc(void *ptr, size_t size);
-#define pa_xfree free
+/** Free allocated memory */
+void pa_xfree(void *p);
+
+/** Duplicate the specified string, allocating memory with pa_xmalloc() */
char *pa_xstrdup(const char *s);
+
+/** Duplicate the specified string, but truncate after l characters */
char *pa_xstrndup(const char *s, size_t l);
+/** Duplicate the specified memory block */
void* pa_xmemdup(const void *p, size_t l);
/** Internal helper for pa_xnew() */