diff options
Diffstat (limited to 'source/luametatex/source/utilities/auxmemory.h')
-rw-r--r-- | source/luametatex/source/utilities/auxmemory.h | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/source/luametatex/source/utilities/auxmemory.h b/source/luametatex/source/utilities/auxmemory.h new file mode 100644 index 000000000..4f040eafd --- /dev/null +++ b/source/luametatex/source/utilities/auxmemory.h @@ -0,0 +1,54 @@ +/* + See license.txt in the root of this project. +*/ + +/* + Some operating systems come with |allocarray| so we use more verbose names. We cannot define + them because on some bsd/apple platforms |CLANG| cannot resolve them. + +*/ + +# ifndef LMT_UTILITIES_MEMORY_H +# define LMT_UTILITIES_MEMORY_H + +/*tex + This is an experiment. The impact of using an alternative allocator on native Windows makes a + native version some 5% faster than a cross compiled one. Otherwise the cross compiled version + outperforms the native one a bit. In \TEX\ and \METAPOST\ we already do something like this + but there we don't reclaim memory. + +*/ + +# include <stdlib.h> +# include <string.h> + +# if defined(LUAMETATEX_USE_MIMALLOC) + # include "libraries/mimalloc/include/mimalloc.h" + # define lmt_memory_malloc mi_malloc + # define lmt_memory_calloc mi_calloc + # define lmt_memory_realloc mi_realloc + # define lmt_memory_free mi_free + # define lmt_memory_strdup mi_strdup + + // # include "libraries/mimalloc/include/mimalloc-override.h" + +# else + # define lmt_memory_malloc malloc + # define lmt_memory_calloc calloc + # define lmt_memory_realloc realloc + # define lmt_memory_free free + # define lmt_memory_strdup strdup +# endif + +# define lmt_generic_malloc malloc +# define lmt_generic_calloc calloc +# define lmt_generic_realloc realloc +# define lmt_generic_free free +# define lmt_generic_strdup strdup + +extern void *aux_allocate_array (int recordsize, int size, int reserved); +extern void *aux_reallocate_array (void *p, int recordsize, int size, int reserved); +extern void *aux_allocate_clear_array (int recordsize, int size, int reserved); +extern void aux_deallocate_array (void *p); + +# endif |