1
2
3
4
5
6
7
8
9gd_alloc_funcs(3) GETDATA gd_alloc_funcs(3)
10
11
12
14 gd_alloc_funcs — specify an alternate memory manager for GetData's use
15
16
18 #include <getdata.h>
19
20 void gd_alloc_funcs(void *(*malloc_func)(size_t), void
21 (*free_func)(void*));
22
23
25 The gd_alloc_funcs() function allows the caller to specify an alternate
26 memory manager for GetData to use when providing dynamically allocated
27 data to the caller. The caller should specify pointers to two func‐
28 tions which mimic the behaviour of the Standard Library's malloc(3) and
29 free(3) functions. Passing NULL is equivalent to passing a pointer to
30 the corresponding Standard Library function, so the default memory man‐
31 ager can be restored by passing all NULLs to this function.
32
33 The functions gd_entry(3), gd_error_string(3), gd_fragment_affixes(3),
34 gd_linterp_tablename(3), gd_raw_filename(3), and gd_strtok(3) will use
35 malloc_func to allocate the buffers they return. The function
36 gd_free_entry_strings(3) will use the specified free_func to deallocate
37 entry strings, and that same function will also be used by GetData to
38 deallocate strings returned by any registered parser callback function
39 (see gd_cbopen(3)).
40
41 Internally, GetData may still allocate buffers on a different heap, and
42 the caller should not assume that any other pointer returned by the li‐
43 brary were allocated with the functions specified by this function.
44 Neither should the caller assume that these functions won't be used by
45 GetData library functions to allocate and deallocate temporary buffers.
46
47 Changes made to the memory manager are global across GetData. The
48 caller should only call this function when it is certain that no object
49 allocated with the old memory manager still exists.
50
51 This function always succeeds and returns no value.
52
53
55 The gd_alloc_funcs() function appeared in GetData-0.10.0.
56
57
59 free(3), gd_cbopen(3), gd_entry(3), gd_error_string(3),
60 gd_fragment_affixes(3), gd_free_entry_strings(3)
61 gd_linterp_tablename(3), gd_raw_filename(3), gd_strtok(3), malloc(3)
62
63
64
65Version 0.10.1 5 April 2017 gd_alloc_funcs(3)