27 #ifndef __OPJ_MALLOC_H
28 #define __OPJ_MALLOC_H
51 #define opj_malloc(size) calloc(1, size)
63 #define opj_calloc(num, size) calloc(num, size)
75 #include <mm_malloc.h>
76 #define HAVE_MM_MALLOC
80 #define HAVE_MM_MALLOC
86 #elif defined(__FreeBSD__)
87 #define HAVE_POSIX_MEMALIGN
89 #elif !defined(__amd64__) && !defined(__APPLE__) && !defined(_AIX)
95 #define opj_aligned_malloc(size) malloc(size)
96 #define opj_aligned_free(m) free(m)
99 #undef opj_aligned_malloc
100 #define opj_aligned_malloc(size) _mm_malloc(size, 16)
101 #undef opj_aligned_free
102 #define opj_aligned_free(m) _mm_free(m)
106 extern void*
memalign(
size_t,
size_t);
107 #undef opj_aligned_malloc
108 #define opj_aligned_malloc(size) memalign(16, (size))
109 #undef opj_aligned_free
110 #define opj_aligned_free(m) free(m)
113 #ifdef HAVE_POSIX_MEMALIGN
114 #undef opj_aligned_malloc
115 extern int posix_memalign(
void**,
size_t,
size_t);
119 posix_memalign(&mem, 16, size);
122 #undef opj_aligned_free
123 #define opj_aligned_free(m) free(m)
126 #ifdef ALLOC_PERF_OPT
127 #undef opj_aligned_malloc
128 #define opj_aligned_malloc(size) opj_malloc(size)
129 #undef opj_aligned_free
130 #define opj_aligned_free(m) opj_free(m)
139 #ifdef ALLOC_PERF_OPT
142 #define opj_realloc(m, s) realloc(m, s)
149 #ifdef ALLOC_PERF_OPT
152 #define opj_free(m) free(m)
156 #pragma GCC poison malloc calloc realloc free
void * memalign(size_t, size_t)
#define opj_calloc(num, size)
Allocate a memory block with elements initialized to 0.
Definition: opj_malloc.h:63
#define opj_realloc(m, s)
Reallocate memory blocks.
Definition: opj_malloc.h:142
#define opj_aligned_malloc(size)
Definition: opj_malloc.h:108
#define __attribute__(x)
Definition: opj_includes.h:59
#define OPJ_CALLCONV
Definition: openjpeg.h:45
#define INLINE
Definition: opj_includes.h:75
#define opj_malloc(size)
Allocate an uninitialized memory block.
Definition: opj_malloc.h:51
#define opj_free(m)
Deallocates or frees a memory block.
Definition: opj_malloc.h:152