summaryrefslogtreecommitdiff
path: root/src/alloc.c
diff options
context:
space:
mode:
authorCarlos Martín Nieto <cmn@dwim.me>2018-07-15 17:30:04 +0200
committerCarlos Martín Nieto <cmn@dwim.me>2018-07-15 17:30:04 +0200
commit19007b19b70504a3964f5d8320d0ef39c01ce6b0 (patch)
tree0881210ee61eb83c8b143ee1f7d992b7ad10e0eb /src/alloc.c
parent2510268a269cd79e5cfa68ce8f56e540131f3b6d (diff)
downloadlibgit2-cmn/allocator-init-order.tar.gz
alloc: don't overwrite allocator during init if setcmn/allocator-init-order
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.
Diffstat (limited to 'src/alloc.c')
-rw-r--r--src/alloc.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/alloc.c b/src/alloc.c
index 35fdd00c4..d4e6f1ebd 100644
--- a/src/alloc.c
+++ b/src/alloc.c
@@ -17,6 +17,13 @@ git_allocator git__allocator;
int git_allocator_global_init(void)
{
+ /*
+ * We don't want to overwrite any allocator which has been set before
+ * the init function is called.
+ */
+ if (git__allocator.gmalloc != NULL)
+ return 0;
+
#if defined(GIT_MSVC_CRTDBG)
return git_win32_crtdbg_init_allocator(&git__allocator);
#else