176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman/* JSON free 276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman * ZZJSON - Copyright (C) 2008 by Ivo van Poorten 376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman * License: GNU Lesser General Public License version 2.1 476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman */ 576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#include "zzjson.h" 776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartmanvoid zzjson_free(ZZJSON_CONFIG *config, ZZJSON *zzjson) { 976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman while (zzjson) { 1076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman ZZJSON *next; 1176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman switch(zzjson->type) { 1276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman case ZZJSON_OBJECT: 1376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman config->free(zzjson->value.object.label); 1476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman zzjson_free(config, zzjson->value.object.val); 1576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman break; 1676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman case ZZJSON_ARRAY: 1776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman zzjson_free(config, zzjson->value.array.val); 1876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman break; 1976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman case ZZJSON_STRING: 2076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman config->free(zzjson->value.string.string); 2176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman break; 2276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman default: 2376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman break; 2476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman } 2576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman next = zzjson->next; 2676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman config->free(zzjson); 2776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman zzjson = next; 2876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman } 2976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman} 30