1 /* @nolint 2 * Copyright (c) 2009-2012 Petri Lehtinen <petri@digip.org> 3 * Copyright (c) 2011-2012 Basile Starynkevitch <basile@starynkevitch.net> 4 * 5 * Jansson is free software; you can redistribute it and/or modify it 6 * under the terms of the MIT license. See LICENSE for details. 7 */ 8 9 #include <stdlib.h> 10 #include <string.h> 11 12 #include "jansson.h" 13 #include "jansson_private.h" 14 15 /* memory function pointers */ 16 static json_malloc_t do_malloc = malloc; 17 static json_free_t do_free = free; 18 jsonp_malloc(size_t size)19void *jsonp_malloc(size_t size) 20 { 21 if(!size) 22 return NULL; 23 24 return (*do_malloc)(size); 25 } 26 jsonp_free(void * ptr)27void jsonp_free(void *ptr) 28 { 29 if(!ptr) 30 return; 31 32 (*do_free)(ptr); 33 } 34 jsonp_strdup(const char * str)35char *jsonp_strdup(const char *str) 36 { 37 char *new_str; 38 39 new_str = (char*)jsonp_malloc(strlen(str) + 1); 40 if(!new_str) 41 return NULL; 42 43 strcpy(new_str, str); 44 return new_str; 45 } 46 json_set_alloc_funcs(json_malloc_t malloc_fn,json_free_t free_fn)47void json_set_alloc_funcs(json_malloc_t malloc_fn, json_free_t free_fn) 48 { 49 do_malloc = malloc_fn; 50 do_free = free_fn; 51 } 52