]>
Commit | Line | Data |
---|---|---|
ac3d33df JK |
1 | /* |
2 | * Copyright (C) the libgit2 contributors. All rights reserved. | |
3 | * | |
4 | * This file is part of libgit2, distributed under the GNU GPL v2 with | |
5 | * a Linking Exception. For full terms see the included COPYING file. | |
6 | */ | |
7 | ||
8 | #ifndef INCLUDE_alloc_h__ | |
9 | #define INCLUDE_alloc_h__ | |
10 | ||
11 | #include "git2/sys/alloc.h" | |
12 | ||
13 | extern git_allocator git__allocator; | |
14 | ||
15 | #define git__malloc(len) git__allocator.gmalloc(len, __FILE__, __LINE__) | |
16 | #define git__calloc(nelem, elsize) git__allocator.gcalloc(nelem, elsize, __FILE__, __LINE__) | |
17 | #define git__strdup(str) git__allocator.gstrdup(str, __FILE__, __LINE__) | |
18 | #define git__strndup(str, n) git__allocator.gstrndup(str, n, __FILE__, __LINE__) | |
19 | #define git__substrdup(str, n) git__allocator.gsubstrdup(str, n, __FILE__, __LINE__) | |
20 | #define git__realloc(ptr, size) git__allocator.grealloc(ptr, size, __FILE__, __LINE__) | |
21 | #define git__reallocarray(ptr, nelem, elsize) git__allocator.greallocarray(ptr, nelem, elsize, __FILE__, __LINE__) | |
22 | #define git__mallocarray(nelem, elsize) git__allocator.gmallocarray(nelem, elsize, __FILE__, __LINE__) | |
23 | #define git__free git__allocator.gfree | |
24 | ||
25 | /** | |
26 | * This function is being called by our global setup routines to | |
27 | * initialize the standard allocator. | |
28 | */ | |
29 | int git_allocator_global_init(void); | |
30 | ||
31 | /** | |
32 | * Switch out libgit2's global memory allocator | |
33 | * | |
34 | * @param allocator The new allocator that should be used. All function pointers | |
35 | * of it need to be set correctly. | |
36 | * @return An error code or 0. | |
37 | */ | |
38 | int git_allocator_setup(git_allocator *allocator); | |
39 | ||
40 | #endif |