41e0b857be
Header files are now self-contained, which makes the relationships between the files clearer, and crucially allows LSP tools like `clangd` to function correctly in all of our header files. I have verified that the headers are self-contained (aside from the various Windows shims) by compiling them as if they were C files – in a follow-up commit I plan to add this to CI to ensure we don't regress on this front.
27 lines
1.1 KiB
C
27 lines
1.1 KiB
C
#ifndef JEMALLOC_INTERNAL_TEST_HOOKS_H
|
|
#define JEMALLOC_INTERNAL_TEST_HOOKS_H
|
|
|
|
#include "jemalloc/internal/jemalloc_preamble.h"
|
|
|
|
extern JEMALLOC_EXPORT void (*test_hooks_arena_new_hook)(void);
|
|
extern JEMALLOC_EXPORT void (*test_hooks_libc_hook)(void);
|
|
|
|
#if defined(JEMALLOC_JET) || defined(JEMALLOC_UNIT_TEST)
|
|
# define JEMALLOC_TEST_HOOK(fn, hook) ((void)(hook != NULL && (hook(), 0)), fn)
|
|
|
|
# define open JEMALLOC_TEST_HOOK(open, test_hooks_libc_hook)
|
|
# define read JEMALLOC_TEST_HOOK(read, test_hooks_libc_hook)
|
|
# define write JEMALLOC_TEST_HOOK(write, test_hooks_libc_hook)
|
|
# define readlink JEMALLOC_TEST_HOOK(readlink, test_hooks_libc_hook)
|
|
# define close JEMALLOC_TEST_HOOK(close, test_hooks_libc_hook)
|
|
# define creat JEMALLOC_TEST_HOOK(creat, test_hooks_libc_hook)
|
|
# define secure_getenv JEMALLOC_TEST_HOOK(secure_getenv, test_hooks_libc_hook)
|
|
/* Note that this is undef'd and re-define'd in src/prof.c. */
|
|
# define _Unwind_Backtrace JEMALLOC_TEST_HOOK(_Unwind_Backtrace, test_hooks_libc_hook)
|
|
#else
|
|
# define JEMALLOC_TEST_HOOK(fn, hook) fn
|
|
#endif
|
|
|
|
|
|
#endif /* JEMALLOC_INTERNAL_TEST_HOOKS_H */
|