summaryrefslogtreecommitdiff
path: root/xs_json.h
diff options
context:
space:
mode:
Diffstat (limited to 'xs_json.h')
-rw-r--r--xs_json.h22
1 files changed, 9 insertions, 13 deletions
diff --git a/xs_json.h b/xs_json.h
index 13c3ebb..d992494 100644
--- a/xs_json.h
+++ b/xs_json.h
@@ -368,7 +368,7 @@ d_char *_xs_json_loads_array(const char **json, js_type *t)
368 l = xs_list_append(l, v); 368 l = xs_list_append(l, v);
369 369
370 while (*t == JS_INCOMPLETE) { 370 while (*t == JS_INCOMPLETE) {
371 free(_xs_json_loads_lexer(&s, &tt)); 371 xs_free(_xs_json_loads_lexer(&s, &tt));
372 372
373 if (tt == JS_CBRACK) 373 if (tt == JS_CBRACK)
374 *t = JS_ARRAY; 374 *t = JS_ARRAY;
@@ -392,10 +392,8 @@ d_char *_xs_json_loads_array(const char **json, js_type *t)
392 *t = JS_ERROR; 392 *t = JS_ERROR;
393 } 393 }
394 394
395 if (*t == JS_ERROR) { 395 if (*t == JS_ERROR)
396 free(l); 396 l = xs_free(l);
397 l = NULL;
398 }
399 397
400 *json = s; 398 *json = s;
401 399
@@ -421,7 +419,7 @@ d_char *_xs_json_loads_object(const char **json, js_type *t)
421 *t = JS_OBJECT; 419 *t = JS_OBJECT;
422 else 420 else
423 if (tt == JS_STRING) { 421 if (tt == JS_STRING) {
424 free(_xs_json_loads_lexer(&s, &tt)); 422 xs_free(_xs_json_loads_lexer(&s, &tt));
425 423
426 if (tt == JS_COLON) { 424 if (tt == JS_COLON) {
427 xs *v1; 425 xs *v1;
@@ -433,7 +431,7 @@ d_char *_xs_json_loads_object(const char **json, js_type *t)
433 d = xs_dict_append(d, k1, v1); 431 d = xs_dict_append(d, k1, v1);
434 432
435 while (*t == JS_INCOMPLETE) { 433 while (*t == JS_INCOMPLETE) {
436 free(_xs_json_loads_lexer(&s, &tt)); 434 xs_free(_xs_json_loads_lexer(&s, &tt));
437 435
438 if (tt == JS_CCURLY) 436 if (tt == JS_CCURLY)
439 *t = JS_OBJECT; 437 *t = JS_OBJECT;
@@ -442,7 +440,7 @@ d_char *_xs_json_loads_object(const char **json, js_type *t)
442 xs *k = _xs_json_loads_lexer(&s, &tt); 440 xs *k = _xs_json_loads_lexer(&s, &tt);
443 441
444 if (tt == JS_STRING) { 442 if (tt == JS_STRING) {
445 free(_xs_json_loads_lexer(&s, &tt)); 443 xs_free(_xs_json_loads_lexer(&s, &tt));
446 444
447 if (tt == JS_COLON) { 445 if (tt == JS_COLON) {
448 xs *v; 446 xs *v;
@@ -474,10 +472,8 @@ d_char *_xs_json_loads_object(const char **json, js_type *t)
474 else 472 else
475 *t = JS_ERROR; 473 *t = JS_ERROR;
476 474
477 if (*t == JS_ERROR) { 475 if (*t == JS_ERROR)
478 free(d); 476 d = xs_free(d);
479 d = NULL;
480 }
481 477
482 *json = s; 478 *json = s;
483 479
@@ -491,7 +487,7 @@ d_char *xs_json_loads(const char *json)
491 d_char *v = NULL; 487 d_char *v = NULL;
492 js_type t; 488 js_type t;
493 489
494 free(_xs_json_loads_lexer(&json, &t)); 490 xs_free(_xs_json_loads_lexer(&json, &t));
495 491
496 if (t == JS_OBRACK) 492 if (t == JS_OBRACK)
497 v = _xs_json_loads_array(&json, &t); 493 v = _xs_json_loads_array(&json, &t);