add new json based config file
[uwplayer.git] / application / json.c
index 9bdea02..bd27f2f 100644 (file)
@@ -51,6 +51,13 @@ JSONParser* json_parser_new(void) {
     return parser;
 }
 
+void json_parser_free(JSONParser *p) {
+    if(p->states) free(p->states);
+    if(p->readvalue_stack) free(p->readvalue_stack);
+    
+    free(p);
+}
+
 void json_parser_fill(JSONParser *p, const char *buf, size_t size) {
     p->buffer = buf;
     p->size = size;
@@ -745,10 +752,11 @@ static int add_to_parent(JSONParser *p, JSONValue *parent, JSONValue *v) {
 static int readvaluestack_add(JSONParser *p, JSONValue *v) {
     if(p->readvalue_nelm == p->readvalue_alloc) {
         p->readvalue_alloc *= 2;
-        p->readvalue_stack = realloc(p->readvalue_stack, sizeof(JSONValue*) * p->readvalue_alloc);
-        if(!p->readvalue_stack) {
+        JSONValue **new_stack = realloc(p->readvalue_stack, sizeof(JSONValue*) * p->readvalue_alloc);
+        if(!new_stack) {
             return -1;
         }
+        p->readvalue_stack = new_stack;
     }
     p->readvalue_stack[p->readvalue_nelm++] = v;
     return 0;