27 #define _XOPEN_SOURCE 600
45 #define malloc AV_JOIN(MALLOC_PREFIX, malloc)
46 #define memalign AV_JOIN(MALLOC_PREFIX, memalign)
47 #define posix_memalign AV_JOIN(MALLOC_PREFIX, posix_memalign)
48 #define realloc AV_JOIN(MALLOC_PREFIX, realloc)
49 #define free AV_JOIN(MALLOC_PREFIX, free)
51 void *malloc(
size_t size);
52 void *memalign(
size_t align,
size_t size);
53 int posix_memalign(
void **ptr,
size_t align,
size_t size);
54 void *realloc(
void *ptr,
size_t size);
59 #define ALIGN (HAVE_AVX ? 32 : 16)
75 #if CONFIG_MEMALIGN_HACK
83 #if CONFIG_MEMALIGN_HACK
84 ptr = malloc(size +
ALIGN);
87 diff = ((~(long)ptr)&(
ALIGN - 1)) + 1;
88 ptr = (
char *)ptr + diff;
89 ((
char *)ptr)[-1] =
diff;
90 #elif HAVE_POSIX_MEMALIGN
92 if (posix_memalign(&ptr,
ALIGN, size))
94 #elif HAVE_ALIGNED_MALLOC
95 ptr = _aligned_malloc(size,
ALIGN);
97 ptr = memalign(
ALIGN, size);
129 #if CONFIG_MEMORY_POISONING
131 memset(ptr, 0x2a, size);
138 #if CONFIG_MEMALIGN_HACK
146 #if CONFIG_MEMALIGN_HACK
150 diff = ((
char *)ptr)[-1];
151 ptr = realloc((
char *)ptr - diff, size + diff);
153 ptr = (
char *)ptr + diff;
155 #elif HAVE_ALIGNED_MALLOC
156 return _aligned_realloc(ptr, size + !size,
ALIGN);
158 return realloc(ptr, size + !size);
179 #if CONFIG_MEMALIGN_HACK
181 free((
char *)ptr - ((
char *)ptr)[-1]);
182 #elif HAVE_ALIGNED_MALLOC
191 void **ptr = (
void **)arg;
200 memset(ptr, 0, size);
206 if (size <= 0 || nmemb >= INT_MAX / size)
215 int len = strlen(s) + 1;
231 tab = *(intptr_t**)tab_ptr;
232 if ((nb & (nb - 1)) == 0) {
237 tab =
av_realloc(tab, nb_alloc *
sizeof(intptr_t));
238 *(intptr_t**)tab_ptr = tab;
240 tab[nb++] = (intptr_t)elem;
266 uint32_t
a = v << 8 | v >> 16;
267 uint32_t
b = v << 16 | v >> 8;
268 uint32_t
c = v << 24 | v;
271 uint32_t a = v | v << 24;
272 uint32_t b = v >> 8 | v << 16;
273 uint32_t c = v >> 16 | v << 8;
320 const uint8_t *src = &dst[-back];
322 memset(dst, *src, cnt);
323 }
else if (back == 2) {
325 }
else if (back == 3) {
327 }
else if (back == 4) {
332 while (cnt > blocklen) {
333 memcpy(dst, src, blocklen);
338 memcpy(dst, src, cnt);