From cca66b9ec4e494c1d919bff0f71a820d8afab1fa Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 7 Apr 2024 20:24:48 +0200 Subject: Adding upstream version 1.2.2. Signed-off-by: Daniel Baumann --- src/3rdparty/autotrace/xstd.h | 81 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 src/3rdparty/autotrace/xstd.h (limited to 'src/3rdparty/autotrace/xstd.h') diff --git a/src/3rdparty/autotrace/xstd.h b/src/3rdparty/autotrace/xstd.h new file mode 100644 index 0000000..18e4d5b --- /dev/null +++ b/src/3rdparty/autotrace/xstd.h @@ -0,0 +1,81 @@ +/* xstd.h: Wrappers for functions in C standard library + Was: xmem, xfile */ + +/* These call the corresponding function in the standard library, and + abort if those routines fail. */ + +#ifndef XSTD_H +#define XSTD_H + +#include "types.h" +#include +#include + +/* + * XMEM + */ +#ifndef __cplusplus +#define XMALLOC(new_mem, size) \ +do \ + { \ + new_mem = (gpointer) malloc (size); \ + assert(new_mem); \ + } while (0) + +#define XCALLOC(new_mem, size) \ +do \ + { \ + new_mem = (gpointer) calloc (size, 1); \ + assert(new_mem); \ + } while (0) + +#define XREALLOC(old_ptr, size) \ +do \ + { \ + gpointer new_mem; \ + \ + if (old_ptr == NULL) \ + XMALLOC (new_mem, size); \ + else \ + { \ + new_mem = (gpointer) realloc (old_ptr, size); \ + assert(new_mem); \ + } \ + \ + old_ptr = new_mem; \ +} while (0) + +#else +/* Use templates if Cplusplus... */ +#define XMALLOC(new_mem, size) \ +do \ + { \ + (gpointer&)(new_mem) = (gpointer) malloc (size); \ + assert(new_mem); \ + } while (0) + +#define XCALLOC(new_mem, sizex) \ +do \ + { \ + (gpointer&)(new_mem) = (void *) calloc (sizex, 1); \ + assert(new_mem); \ + } while (0) + +#define XREALLOC(old_ptr, size) \ +do \ + { \ + gpointer new_mem; \ + \ + if (old_ptr == NULL) \ + XMALLOC (new_mem, (size)); \ + else \ + { \ + (gpointer&) new_mem = (gpointer) realloc ((old_ptr), (size)); \ + assert(new_mem); \ + } \ + \ + (gpointer&)old_ptr = new_mem; \ + } while (0) +#endif + +#endif /* Not XSTD_H */ -- cgit v1.2.3