14#include "../../source/blender/blenlib/BLI_strict_flags.h"
24#ifdef WITH_JEMALLOC_CONF
30const char *malloc_conf =
31 "background_thread:true,dirty_decay_ms:4000,thp:always,metadata_thp:always";
46void *(*mem_guarded::internal::mem_mallocN_aligned_ex)(
size_t len,
51void *(*MEM_calloc_arrayN_aligned)(
size_t len,
80 return _aligned_malloc(size, alignment);
81#elif defined(__APPLE__) || defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__)
84 if (posix_memalign(&result, alignment, size)) {
92 return memalign(alignment, size);
void BLI_kdtree_nd_ free(KDTree *tree)
Read Guarded memory(de)allocation.
static DBVT_INLINE btScalar size(const btDbvtVolume &a)
size_t(* MEM_get_peak_memory)(void)
void aligned_free(void *ptr)
void MEM_use_lockfree_allocator()
void * MEM_mallocN_aligned(size_t len, size_t alignment, const char *str)
void *(* MEM_reallocN_id)(void *vmemh, size_t len, const char *str)
void *(* MEM_mallocN)(size_t len, const char *str)
void(* MEM_reset_peak_memory)(void)
void(* MEM_name_ptr_set)(void *vmemh, const char *str)
size_t(* MEM_get_memory_in_use)(void)
const char *(* MEM_name_ptr)(void *vmemh)
void *(* MEM_calloc_arrayN_aligned)(size_t len, size_t size, size_t alignment, const char *str)
void *(* MEM_malloc_arrayN)(size_t len, size_t size, const char *str)
void(* MEM_printmemlist_stats)(void)
void(* MEM_set_memory_debug)(void)
void(* mem_clearmemlist)(void)
void(* MEM_set_error_callback)(void(*func)(const char *))
void MEM_use_guarded_allocator()
size_t(* MEM_allocN_len)(const void *vmemh)
void *(* MEM_calloc_arrayN)(size_t len, size_t size, const char *str)
void *(* MEM_recallocN_id)(void *vmemh, size_t len, const char *str)
void MEM_freeN(void *vmemh)
bool(* MEM_consistency_check)(void)
void *(* MEM_callocN)(size_t len, const char *str)
void(* MEM_printmemlist_pydict)(void)
uint(* MEM_get_memory_blocks_in_use)(void)
void * aligned_malloc(size_t size, size_t alignment)
static void assert_for_allocator_change()
void *(* MEM_dupallocN)(const void *vmemh)
void(* MEM_callbackmemlist)(void(*func)(void *))
void(* MEM_printmemlist)(void)
void * MEM_guarded_mallocN_aligned(size_t len, size_t alignment, const char *str, const AllocationType allocation_type)
void * MEM_guarded_calloc_arrayN_aligned(const size_t len, const size_t size, const size_t alignment, const char *str)
size_t MEM_guarded_allocN_len(const void *vmemh)
void * MEM_guarded_mallocN(size_t len, const char *str)
size_t MEM_guarded_get_peak_memory()
void * MEM_guarded_calloc_arrayN(size_t len, size_t size, const char *str)
void MEM_guarded_reset_peak_memory()
void MEM_guarded_freeN(void *vmemh, const AllocationType allocation_type)
void MEM_guarded_set_error_callback(void(*func)(const char *))
bool MEM_guarded_consistency_check()
void MEM_guarded_printmemlist_pydict()
void MEM_guarded_callbackmemlist(void(*func)(void *))
void MEM_guarded_printmemlist()
uint MEM_guarded_get_memory_blocks_in_use()
void * MEM_guarded_callocN(size_t len, const char *str)
void * MEM_guarded_reallocN_id(void *vmemh, size_t len, const char *str)
void MEM_guarded_printmemlist_stats()
void * MEM_guarded_malloc_arrayN(size_t len, size_t size, const char *str)
void * MEM_guarded_dupallocN(const void *vmemh)
size_t MEM_guarded_get_memory_in_use()
void * MEM_guarded_recallocN_id(void *vmemh, size_t len, const char *str)
void MEM_guarded_name_ptr_set(void *vmemh, const char *str)
void MEM_guarded_set_memory_debug()
const char * MEM_guarded_name_ptr(void *vmemh)
void mem_guarded_clearmemlist()
void * MEM_lockfree_malloc_arrayN(size_t len, size_t size, const char *str) ATTR_MALLOC ATTR_WARN_UNUSED_RESULT ATTR_ALLOC_SIZE(1
void * MEM_lockfree_dupallocN(const void *vmemh) ATTR_MALLOC ATTR_WARN_UNUSED_RESULT
void MEM_lockfree_freeN(void *vmemh, mem_guarded::internal::AllocationType allocation_type)
void MEM_lockfree_reset_peak_memory(void)
void mem_lockfree_clearmemlist(void)
void MEM_lockfree_name_ptr_set(void *vmemh, const char *str)
void * MEM_lockfree_mallocN_aligned(size_t len, size_t alignment, const char *str, mem_guarded::internal::AllocationType allocation_type) ATTR_MALLOC ATTR_WARN_UNUSED_RESULT ATTR_ALLOC_SIZE(1) ATTR_NONNULL(3)
void * MEM_lockfree_calloc_arrayN(size_t len, size_t size, const char *str) ATTR_MALLOC ATTR_WARN_UNUSED_RESULT ATTR_ALLOC_SIZE(1
void MEM_lockfree_set_error_callback(void(*func)(const char *))
void MEM_lockfree_printmemlist_stats(void)
void MEM_lockfree_set_memory_debug(void)
void * MEM_lockfree_reallocN_id(void *vmemh, size_t len, const char *str) ATTR_MALLOC ATTR_WARN_UNUSED_RESULT ATTR_ALLOC_SIZE(2)
bool MEM_lockfree_consistency_check(void)
void * MEM_lockfree_callocN(size_t len, const char *str) ATTR_MALLOC ATTR_WARN_UNUSED_RESULT ATTR_ALLOC_SIZE(1) ATTR_NONNULL(2)
void MEM_lockfree_printmemlist_pydict(void)
#define ALIGNED_MALLOC_MINIMUM_ALIGNMENT
void * MEM_lockfree_recallocN_id(void *vmemh, size_t len, const char *str) ATTR_MALLOC ATTR_WARN_UNUSED_RESULT ATTR_ALLOC_SIZE(2)
void * MEM_lockfree_mallocN(size_t len, const char *str) ATTR_MALLOC ATTR_WARN_UNUSED_RESULT ATTR_ALLOC_SIZE(1) ATTR_NONNULL(2)
void MEM_lockfree_printmemlist(void)
size_t MEM_lockfree_allocN_len(const void *vmemh) ATTR_WARN_UNUSED_RESULT
const char * MEM_lockfree_name_ptr(void *vmemh)
void MEM_lockfree_callbackmemlist(void(*func)(void *))
void * MEM_lockfree_calloc_arrayN_aligned(size_t len, size_t size, size_t alignment, const char *str) ATTR_MALLOC ATTR_WARN_UNUSED_RESULT ATTR_ALLOC_SIZE(1
size_t MEM_lockfree_get_memory_in_use(void)
unsigned int MEM_lockfree_get_memory_blocks_in_use(void)
size_t MEM_lockfree_get_peak_memory(void) ATTR_WARN_UNUSED_RESULT
void(* mem_freeN_ex)(void *vmemh, AllocationType allocation_type)
void *(* mem_mallocN_aligned_ex)(size_t len, size_t alignment, const char *str, AllocationType allocation_type)