yajl - JSON library working with the compiler. URL: http://lloyd.github.com/yajl/

Dependencies:   mbed

Committer:
rolf
Date:
Wed Nov 18 17:56:51 2009 +0000
Revision:
0:34f4a53d4ca3

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
rolf 0:34f4a53d4ca3 1 /*
rolf 0:34f4a53d4ca3 2 * Copyright 2007-2009, Lloyd Hilaiel.
rolf 0:34f4a53d4ca3 3 *
rolf 0:34f4a53d4ca3 4 * Redistribution and use in source and binary forms, with or without
rolf 0:34f4a53d4ca3 5 * modification, are permitted provided that the following conditions are
rolf 0:34f4a53d4ca3 6 * met:
rolf 0:34f4a53d4ca3 7 *
rolf 0:34f4a53d4ca3 8 * 1. Redistributions of source code must retain the above copyright
rolf 0:34f4a53d4ca3 9 * notice, this list of conditions and the following disclaimer.
rolf 0:34f4a53d4ca3 10 *
rolf 0:34f4a53d4ca3 11 * 2. Redistributions in binary form must reproduce the above copyright
rolf 0:34f4a53d4ca3 12 * notice, this list of conditions and the following disclaimer in
rolf 0:34f4a53d4ca3 13 * the documentation and/or other materials provided with the
rolf 0:34f4a53d4ca3 14 * distribution.
rolf 0:34f4a53d4ca3 15 *
rolf 0:34f4a53d4ca3 16 * 3. Neither the name of Lloyd Hilaiel nor the names of its
rolf 0:34f4a53d4ca3 17 * contributors may be used to endorse or promote products derived
rolf 0:34f4a53d4ca3 18 * from this software without specific prior written permission.
rolf 0:34f4a53d4ca3 19 *
rolf 0:34f4a53d4ca3 20 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
rolf 0:34f4a53d4ca3 21 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
rolf 0:34f4a53d4ca3 22 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
rolf 0:34f4a53d4ca3 23 * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
rolf 0:34f4a53d4ca3 24 * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
rolf 0:34f4a53d4ca3 25 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
rolf 0:34f4a53d4ca3 26 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
rolf 0:34f4a53d4ca3 27 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
rolf 0:34f4a53d4ca3 28 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
rolf 0:34f4a53d4ca3 29 * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
rolf 0:34f4a53d4ca3 30 * POSSIBILITY OF SUCH DAMAGE.
rolf 0:34f4a53d4ca3 31 */
rolf 0:34f4a53d4ca3 32
rolf 0:34f4a53d4ca3 33 /**
rolf 0:34f4a53d4ca3 34 * \file yajl_alloc.h
rolf 0:34f4a53d4ca3 35 * default memory allocation routines for yajl which use malloc/realloc and
rolf 0:34f4a53d4ca3 36 * free
rolf 0:34f4a53d4ca3 37 */
rolf 0:34f4a53d4ca3 38 #ifdef __cplusplus
rolf 0:34f4a53d4ca3 39 extern "C" {
rolf 0:34f4a53d4ca3 40 #endif
rolf 0:34f4a53d4ca3 41
rolf 0:34f4a53d4ca3 42 #include "yajl_alloc.h"
rolf 0:34f4a53d4ca3 43 #include <stdlib.h>
rolf 0:34f4a53d4ca3 44
rolf 0:34f4a53d4ca3 45 static void * yajl_internal_malloc(void *ctx, unsigned int sz)
rolf 0:34f4a53d4ca3 46 {
rolf 0:34f4a53d4ca3 47 return malloc(sz);
rolf 0:34f4a53d4ca3 48 }
rolf 0:34f4a53d4ca3 49
rolf 0:34f4a53d4ca3 50 static void * yajl_internal_realloc(void *ctx, void * previous,
rolf 0:34f4a53d4ca3 51 unsigned int sz)
rolf 0:34f4a53d4ca3 52 {
rolf 0:34f4a53d4ca3 53 return realloc(previous, sz);
rolf 0:34f4a53d4ca3 54 }
rolf 0:34f4a53d4ca3 55
rolf 0:34f4a53d4ca3 56 static void yajl_internal_free(void *ctx, void * ptr)
rolf 0:34f4a53d4ca3 57 {
rolf 0:34f4a53d4ca3 58 free(ptr);
rolf 0:34f4a53d4ca3 59 }
rolf 0:34f4a53d4ca3 60
rolf 0:34f4a53d4ca3 61 void yajl_set_default_alloc_funcs(yajl_alloc_funcs * yaf)
rolf 0:34f4a53d4ca3 62 {
rolf 0:34f4a53d4ca3 63 yaf->malloc = yajl_internal_malloc;
rolf 0:34f4a53d4ca3 64 yaf->free = yajl_internal_free;
rolf 0:34f4a53d4ca3 65 yaf->realloc = yajl_internal_realloc;
rolf 0:34f4a53d4ca3 66 yaf->ctx = NULL;
rolf 0:34f4a53d4ca3 67 }
rolf 0:34f4a53d4ca3 68
rolf 0:34f4a53d4ca3 69 #ifdef __cplusplus
rolf 0:34f4a53d4ca3 70 }
rolf 0:34f4a53d4ca3 71 #endif