diff options
author | Erwan Velu <erwanaliasr1@gmail.com> | 2011-03-18 21:56:58 +0100 |
---|---|---|
committer | Erwan Velu <erwanaliasr1@gmail.com> | 2011-03-18 21:56:58 +0100 |
commit | d830004bf61b18d9f819ab8de8d62f509b74d367 (patch) | |
tree | 4bf43608611b7641d5df89fb85e6fb4081199350 /com32/gpllib/zzjson/zzjson_free.c | |
parent | 3905382158cc8c5c40f71e1b33f1802341838bca (diff) | |
download | syslinux-d830004bf61b18d9f819ab8de8d62f509b74d367.tar.gz |
zzjson: Adding zzjson 1.1.0
Diffstat (limited to 'com32/gpllib/zzjson/zzjson_free.c')
-rw-r--r-- | com32/gpllib/zzjson/zzjson_free.c | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/com32/gpllib/zzjson/zzjson_free.c b/com32/gpllib/zzjson/zzjson_free.c new file mode 100644 index 00000000..01dfd242 --- /dev/null +++ b/com32/gpllib/zzjson/zzjson_free.c @@ -0,0 +1,29 @@ +/* JSON free + * ZZJSON - Copyright (C) 2008 by Ivo van Poorten + * License: GNU Lesser General Public License version 2.1 + */ + +#include "zzjson.h" + +void zzjson_free(ZZJSON_CONFIG *config, ZZJSON *zzjson) { + while (zzjson) { + ZZJSON *next; + switch(zzjson->type) { + case ZZJSON_OBJECT: + config->free(zzjson->value.object.label); + zzjson_free(config, zzjson->value.object.val); + break; + case ZZJSON_ARRAY: + zzjson_free(config, zzjson->value.array.val); + break; + case ZZJSON_STRING: + config->free(zzjson->value.string.string); + break; + default: + break; + } + next = zzjson->next; + config->free(zzjson); + zzjson = next; + } +} |