aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPetri Lehtinen <petri@digip.org>2017-12-13 07:07:33 +0200
committerGitHub <noreply@github.com>2017-12-13 07:07:33 +0200
commitbc5c6826ef8db4f576b44799ee4aba61cfa7c40e (patch)
tree5415462b9f7ac332618a839762d9cc12361f8efb
parent217859f8498bb2f666cb84e48a5741c43d9d8be0 (diff)
parentbd91753e913194f008d1854d44834f86616da583 (diff)
downloadjansson-bc5c6826ef8db4f576b44799ee4aba61cfa7c40e.zip
jansson-bc5c6826ef8db4f576b44799ee4aba61cfa7c40e.tar.gz
jansson-bc5c6826ef8db4f576b44799ee4aba61cfa7c40e.tar.bz2
Merge pull request #377 from coreyfarrell/extra-refs
Remove extra reference actions in parsers.
-rw-r--r--src/load.c8
1 files changed, 2 insertions, 6 deletions
diff --git a/src/load.c b/src/load.c
index 831eed6..339adfa 100644
--- a/src/load.c
+++ b/src/load.c
@@ -738,13 +738,11 @@ static json_t *parse_object(lex_t *lex, size_t flags, json_error_t *error)
goto error;
}
- if(json_object_set_nocheck(object, key, value)) {
+ if(json_object_set_new_nocheck(object, key, value)) {
jsonp_free(key);
- json_decref(value);
goto error;
}
- json_decref(value);
jsonp_free(key);
lex_scan(lex, error);
@@ -781,11 +779,9 @@ static json_t *parse_array(lex_t *lex, size_t flags, json_error_t *error)
if(!elem)
goto error;
- if(json_array_append(array, elem)) {
- json_decref(elem);
+ if(json_array_append_new(array, elem)) {
goto error;
}
- json_decref(elem);
lex_scan(lex, error);
if(lex->token != ',')