diff options
| author | 2022-10-25 09:32:41 +0200 | |
|---|---|---|
| committer | 2022-10-25 09:32:41 +0200 | |
| commit | fa870ab358ce94017228cdddf4697e041fc32531 (patch) | |
| tree | 326d5a13a525531b4c5c243160d215d7c28263ae /xs_json.h | |
| parent | Don't load unneeded actor info in html_entry(). (diff) | |
| download | penes-snac2-fa870ab358ce94017228cdddf4697e041fc32531.tar.gz penes-snac2-fa870ab358ce94017228cdddf4697e041fc32531.tar.xz penes-snac2-fa870ab358ce94017228cdddf4697e041fc32531.zip | |
Backport from xs.
Diffstat (limited to 'xs_json.h')
| -rw-r--r-- | xs_json.h | 22 |
1 files changed, 9 insertions, 13 deletions
| @@ -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); |