Mercurial > malikania
view extern/jansson/src/memory.c @ 0:8991989c4708
Initial import
author | David Demelier <markand@malikania.fr> |
---|---|
date | Tue, 22 Mar 2016 18:26:05 +0100 |
parents | |
children |
line wrap: on
line source
/* * Copyright (c) 2009-2014 Petri Lehtinen <petri@digip.org> * Copyright (c) 2011-2012 Basile Starynkevitch <basile@starynkevitch.net> * * Jansson is free software; you can redistribute it and/or modify it * under the terms of the MIT license. See LICENSE for details. */ #include <stdlib.h> #include <string.h> #include "jansson.h" #include "jansson_private.h" /* C89 allows these to be macros */ #undef malloc #undef free /* memory function pointers */ static json_malloc_t do_malloc = malloc; static json_free_t do_free = free; void *jsonp_malloc(size_t size) { if(!size) return NULL; return (*do_malloc)(size); } void jsonp_free(void *ptr) { if(!ptr) return; (*do_free)(ptr); } char *jsonp_strdup(const char *str) { return jsonp_strndup(str, strlen(str)); } char *jsonp_strndup(const char *str, size_t len) { char *new_str; new_str = jsonp_malloc(len + 1); if(!new_str) return NULL; memcpy(new_str, str, len); new_str[len] = '\0'; return new_str; } void json_set_alloc_funcs(json_malloc_t malloc_fn, json_free_t free_fn) { do_malloc = malloc_fn; do_free = free_fn; }