summaryrefslogtreecommitdiff
path: root/src/alloc.c
Commit message (Collapse)AuthorAgeFilesLines
* alloc: don't overwrite allocator during init if setcmn/allocator-init-orderCarlos Martín Nieto2018-07-151-0/+7
| | | | | If the allocator has been set before we the library is initialised, we would replace that setting with the standard allocator contrary to the user's wishes.
* settings: allow swapping out memory allocatorPatrick Steinhardt2018-06-071-0/+9
| | | | | | | Tie in the newly created infrastructure for swapping out memory allocators into our settings code. A user can now simply use the new option "GIT_OPT_SET_ALLOCATOR" with `git_libgit2_opts`, passing in an already initialized allocator structure as vararg.
* alloc: make memory allocators use function pointersPatrick Steinhardt2018-06-071-0/+31
Currently, our memory allocators are being redirected to the correct implementation at compile time by simply using macros. In order to make them swappable at runtime, this commit reshuffles that by instead making use of a global "git_allocator" structure, whose pointers are set up to reference the allocator functions. Like this, it becomes easy to swap out allocators by simply setting these function pointers. In order to initialize a "git_allocator", our provided allocators "stdalloc" and "crtdbg" both provide an init function. This is being called to initialize a passed in allocator struct and set up its members correctly. No support is yet included to enable users of libgit2 to switch out the memory allocator at a global level.