1 | #include "jemalloc/internal/jemalloc_preamble.h" |
---|---|
2 | #include "jemalloc/internal/jemalloc_internal_includes.h" |
3 | |
4 | static void (*safety_check_abort)(const char *message); |
5 | |
6 | void safety_check_set_abort(void (*abort_fn)(const char *)) { |
7 | safety_check_abort = abort_fn; |
8 | } |
9 | |
10 | void safety_check_fail(const char *format, ...) { |
11 | char buf[MALLOC_PRINTF_BUFSIZE]; |
12 | |
13 | va_list ap; |
14 | va_start(ap, format); |
15 | malloc_vsnprintf(buf, MALLOC_PRINTF_BUFSIZE, format, ap); |
16 | va_end(ap); |
17 | |
18 | if (safety_check_abort == NULL) { |
19 | malloc_write(buf); |
20 | abort(); |
21 | } else { |
22 | safety_check_abort(buf); |
23 | } |
24 | } |
25 |