1 #include <stdlib.h> 2 #include <stdbool.h> 3 #include <stdint.h> 4 #include <limits.h> 5 #include <strings.h> 6 7 #define JEMALLOC_VERSION "4.4.0-0-gf1f76357313e7dcad7262f17a48ff0a2e005fcdc" 8 #define JEMALLOC_VERSION_MAJOR 4 9 #define JEMALLOC_VERSION_MINOR 4 10 #define JEMALLOC_VERSION_BUGFIX 0 11 #define JEMALLOC_VERSION_NREV 0 12 #define JEMALLOC_VERSION_GID "f1f76357313e7dcad7262f17a48ff0a2e005fcdc" 13 14 # define MALLOCX_LG_ALIGN(la) ((int)(la)) 15 # if LG_SIZEOF_PTR == 2 16 # define MALLOCX_ALIGN(a) ((int)(ffs((int)(a))-1)) 17 # else 18 # define MALLOCX_ALIGN(a) \ 19 ((int)(((size_t)(a) < (size_t)INT_MAX) ? ffs((int)(a))-1 : \ 20 ffs((int)(((size_t)(a))>>32))+31)) 21 # endif 22 # define MALLOCX_ZERO ((int)0x40) 23 /* 24 * Bias tcache index bits so that 0 encodes "automatic tcache management", and 1 25 * encodes MALLOCX_TCACHE_NONE. 26 */ 27 # define MALLOCX_TCACHE(tc) ((int)(((tc)+2) << 8)) 28 # define MALLOCX_TCACHE_NONE MALLOCX_TCACHE(-1) 29 /* 30 * Bias arena index bits so that 0 encodes "use an automatically chosen arena". 31 */ 32 # define MALLOCX_ARENA(a) ((((int)(a))+1) << 20) 33 34 #if defined(__cplusplus) && defined(JEMALLOC_USE_CXX_THROW) 35 # define JEMALLOC_CXX_THROW throw() 36 #else 37 # define JEMALLOC_CXX_THROW 38 #endif 39 40 #if _MSC_VER 41 # define JEMALLOC_ATTR(s) 42 # define JEMALLOC_ALIGNED(s) __declspec(align(s)) 43 # define JEMALLOC_ALLOC_SIZE(s) 44 # define JEMALLOC_ALLOC_SIZE2(s1, s2) 45 # ifndef JEMALLOC_EXPORT 46 # ifdef DLLEXPORT 47 # define JEMALLOC_EXPORT __declspec(dllexport) 48 # else 49 # define JEMALLOC_EXPORT __declspec(dllimport) 50 # endif 51 # endif 52 # define JEMALLOC_FORMAT_PRINTF(s, i) 53 # define JEMALLOC_NOINLINE __declspec(noinline) 54 # ifdef __cplusplus 55 # define JEMALLOC_NOTHROW __declspec(nothrow) 56 # else 57 # define JEMALLOC_NOTHROW 58 # endif 59 # define JEMALLOC_SECTION(s) __declspec(allocate(s)) 60 # define JEMALLOC_RESTRICT_RETURN __declspec(restrict) 61 # if _MSC_VER >= 1900 && !defined(__EDG__) 62 # define JEMALLOC_ALLOCATOR __declspec(allocator) 63 # else 64 # define JEMALLOC_ALLOCATOR 65 # endif 66 #elif defined(JEMALLOC_HAVE_ATTR) 67 # define JEMALLOC_ATTR(s) __attribute__((s)) 68 # define JEMALLOC_ALIGNED(s) JEMALLOC_ATTR(aligned(s)) 69 # ifdef JEMALLOC_HAVE_ATTR_ALLOC_SIZE 70 # define JEMALLOC_ALLOC_SIZE(s) JEMALLOC_ATTR(alloc_size(s)) 71 # define JEMALLOC_ALLOC_SIZE2(s1, s2) JEMALLOC_ATTR(alloc_size(s1, s2)) 72 # else 73 # define JEMALLOC_ALLOC_SIZE(s) 74 # define JEMALLOC_ALLOC_SIZE2(s1, s2) 75 # endif 76 # ifndef JEMALLOC_EXPORT 77 # define JEMALLOC_EXPORT JEMALLOC_ATTR(visibility("default")) 78 # endif 79 # ifdef JEMALLOC_HAVE_ATTR_FORMAT_GNU_PRINTF 80 # define JEMALLOC_FORMAT_PRINTF(s, i) JEMALLOC_ATTR(format(gnu_printf, s, i)) 81 # elif defined(JEMALLOC_HAVE_ATTR_FORMAT_PRINTF) 82 # define JEMALLOC_FORMAT_PRINTF(s, i) JEMALLOC_ATTR(format(printf, s, i)) 83 # else 84 # define JEMALLOC_FORMAT_PRINTF(s, i) 85 # endif 86 # define JEMALLOC_NOINLINE JEMALLOC_ATTR(noinline) 87 # define JEMALLOC_NOTHROW JEMALLOC_ATTR(nothrow) 88 # define JEMALLOC_SECTION(s) JEMALLOC_ATTR(section(s)) 89 # define JEMALLOC_RESTRICT_RETURN 90 # define JEMALLOC_ALLOCATOR 91 #else 92 # define JEMALLOC_ATTR(s) 93 # define JEMALLOC_ALIGNED(s) 94 # define JEMALLOC_ALLOC_SIZE(s) 95 # define JEMALLOC_ALLOC_SIZE2(s1, s2) 96 # define JEMALLOC_EXPORT 97 # define JEMALLOC_FORMAT_PRINTF(s, i) 98 # define JEMALLOC_NOINLINE 99 # define JEMALLOC_NOTHROW 100 # define JEMALLOC_SECTION(s) 101 # define JEMALLOC_RESTRICT_RETURN 102 # define JEMALLOC_ALLOCATOR 103 #endif 104