diff options
Diffstat (limited to 'snag/src/util.h')
| -rw-r--r-- | snag/src/util.h | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/snag/src/util.h b/snag/src/util.h index 1300ace..0c684a4 100644 --- a/snag/src/util.h +++ b/snag/src/util.h @@ -3,18 +3,23 @@ #include <stdarg.h> #include <stddef.h> +#include <stdbool.h> // utility for errors #if !DEBUG void die(const char* format, ...) __attribute__((format(printf, 1, 2))); void* emalloc(size_t size, char* alloc_reason); + #define assert(condition) ((void)0) #else + #define die(fmt, ...) _die(__FILE__, __LINE__, fmt, ##__VA_ARGS__) + void _die(const char* file, int line, const char* format, ...) __attribute__((format(printf, 3, 4))); - #define die(fmt, ...) _die(__LINE__, __FILE__, fmt, ##__VA_ARGS__) - void _die(int line, const char* file, const char* format, ...) __attribute__((format(printf, 3, 4))); + #define emalloc(size, alloc_reason) _emalloc(__FILE__, __LINE__, size, alloc_reason) + void* _emalloc(const char* file, int line, size_t size, char* alloc_reason); + + #define assert(condition) do { if (!(condition)) _failassert(__FILE__, __LINE__, #condition); } while(0) + void _failassert(const char* file, int line, char* contents); - #define emalloc(size, alloc_reason) _emalloc(__LINE__, __FILE__, size, alloc_reason) - void* _emalloc(int line, const char* file, size_t size, char* alloc_reason); #endif // functions for outputting and displaying text, log is used for nonroutine bad things |
