30 lines
743 B
C
30 lines
743 B
C
/* Copyright 2015 the unarr project authors (see AUTHORS file).
|
|
License: LGPLv3 */
|
|
|
|
#ifndef common_allocator_h
|
|
#define common_allocator_h
|
|
|
|
#ifdef USE_CUSTOM_ALLOCATOR
|
|
|
|
#include <stddef.h>
|
|
|
|
typedef void *(* custom_malloc_fn)(void *opaque, size_t size);
|
|
typedef void (* custom_free_fn)(void *opaque, void *ptr);
|
|
|
|
void ar_set_custom_allocator(custom_malloc_fn custom_malloc, custom_free_fn custom_free, void *opaque);
|
|
|
|
#define malloc(size) ar_malloc(size)
|
|
#define calloc(count, size) ar_calloc(count, size)
|
|
#define free(ptr) ar_free(ptr)
|
|
|
|
#define realloc(ptr, size) _use_malloc_memcpy_free_instead(ptr, size)
|
|
#define strdup(str) _use_malloc_memcpy_instead(str)
|
|
|
|
#elif !defined(NDEBUG) && defined(_MSC_VER)
|
|
|
|
#include <crtdbg.h>
|
|
|
|
#endif
|
|
|
|
#endif
|