1 | /*
2 | * Copyright (c) 2007-2014, Lloyd Hilaiel <me@lloyd.io>
3 | *
4 | * Permission to use, copy, modify, and/or distribute this software for any
5 | * purpose with or without fee is hereby granted, provided that the above
6 | * copyright notice and this permission notice appear in all copies.
7 | *
8 | * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
9 | * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
10 | * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
11 | * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
12 | * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
13 | * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
14 | * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
15 | */
16 |
17 | /**
18 | * default memory allocation routines for yajl which use malloc(3), realloc(3),
19 | * and free(3)
20 | **/
21 |
22 | #include "yajl_alloc.h"
23 | #include <stdlib.h>
24 |
25 | /*+
26 | * a private wrapper around malloc(3)
27 | +*/
28 | static void * yajl_internal_malloc(void *ctx, size_t sz)
29 | {
30 | (void)ctx;
31 | return malloc(sz);
32 | }
33 |
34 | /*+
35 | * a private wrapper around realloc(3)
36 | +*/
37 | static void * yajl_internal_realloc(void *ctx, void * previous,
38 | size_t sz)
39 | {
40 | (void)ctx;
41 | return realloc(previous, sz);
42 | }
43 |
44 | /*+
45 | * a private wrapper around free(3)
46 | +*/
47 | static void yajl_internal_free(void *ctx, void * ptr)
48 | {
49 | (void)ctx;
50 | free(ptr);
51 | }
52 |
53 | /*+
54 | * Set the allocator function pointers in <yaf> to private functions which call
55 | * the default malloc(3), realloc(3), and free(3) functions.
56 | +*/
57 | void yajl_set_default_alloc_funcs(yajl_alloc_funcs * yaf)
58 | {
59 | yaf->malloc = yajl_internal_malloc;
60 | yaf->free = yajl_internal_free;
61 | yaf->realloc = yajl_internal_realloc;
62 | yaf->ctx = NULL;
63 | }
64 |