30 lines
829 B
C
30 lines
829 B
C
/* 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;
|
|
}
|
|
}
|