| 2015 | |
| 2016 | JEMALLOC_EXPORT JEMALLOC_ALLOCATOR JEMALLOC_RESTRICT_RETURN |
| 2017 | void JEMALLOC_NOTHROW * |
| 2018 | JEMALLOC_ATTR(malloc) JEMALLOC_ALLOC_SIZE(1) |
| 2019 | je_malloc(size_t size) { |
| 2020 | void *ret; |
| 2021 | static_opts_t sopts; |
| 2022 | dynamic_opts_t dopts; |
| 2023 | |
| 2024 | LOG("core.malloc.entry", "size: %zu", size); |
| 2025 | |
| 2026 | static_opts_init(&sopts); |
| 2027 | dynamic_opts_init(&dopts); |
| 2028 | |
| 2029 | sopts.bump_empty_alloc = true; |
| 2030 | sopts.null_out_result_on_error = true; |
| 2031 | sopts.set_errno_on_error = true; |
| 2032 | sopts.oom_string = "<jemalloc>: Error in malloc(): out of memory\n"; |
| 2033 | |
| 2034 | dopts.result = &ret; |
| 2035 | dopts.num_items = 1; |
| 2036 | dopts.item_size = size; |
| 2037 | |
| 2038 | imalloc(&sopts, &dopts); |
| 2039 | |
| 2040 | LOG("core.malloc.exit", "result: %p", ret); |
| 2041 | |
| 2042 | return ret; |
| 2043 | } |
| 2044 | |
| 2045 | JEMALLOC_EXPORT int JEMALLOC_NOTHROW |
| 2046 | JEMALLOC_ATTR(nonnull(1)) |