diff options
author | ZyX <kp-pav@yandex.ru> | 2016-03-07 09:11:09 +0300 |
---|---|---|
committer | ZyX <kp-pav@yandex.ru> | 2016-04-18 02:48:20 +0300 |
commit | 9a56fcb2e8e97dec1e4ebce1d1287e7ab8a6ee79 (patch) | |
tree | ef01818b635e390315b2e2d6a9ef3bdce0c28b41 /src/nvim/eval/decode.c | |
parent | 9c543f2e246469adec1daddf156f4bcabe30931a (diff) | |
download | rneovim-9a56fcb2e8e97dec1e4ebce1d1287e7ab8a6ee79.tar.gz rneovim-9a56fcb2e8e97dec1e4ebce1d1287e7ab8a6ee79.tar.bz2 rneovim-9a56fcb2e8e97dec1e4ebce1d1287e7ab8a6ee79.zip |
eval/decode: Rewrite json_decode_string end as suggested by oni-link
Diffstat (limited to 'src/nvim/eval/decode.c')
-rw-r--r-- | src/nvim/eval/decode.c | 12 |
1 files changed, 4 insertions, 8 deletions
diff --git a/src/nvim/eval/decode.c b/src/nvim/eval/decode.c index 75c88e308b..1e45336ed9 100644 --- a/src/nvim/eval/decode.c +++ b/src/nvim/eval/decode.c @@ -740,21 +740,17 @@ json_decode_string_after_cycle: } } } - if (kv_size(stack) > 1 || kv_size(container_stack)) { - emsgf(_("E474: Unexpected end of input: %.*s"), (int) buf_len, buf); - goto json_decode_string_fail; + if (kv_size(stack) == 1 && kv_size(container_stack) == 0) { + *rettv = kv_pop(stack).val; + goto json_decode_string_ret; } - goto json_decode_string_ret; + emsgf(_("E474: Unexpected end of input: %.*s"), (int) buf_len, buf); json_decode_string_fail: ret = FAIL; while (kv_size(stack)) { clear_tv(&(kv_pop(stack).val)); } json_decode_string_ret: - if (ret != FAIL) { - assert(kv_size(stack) == 1); - *rettv = kv_pop(stack).val; - } kv_destroy(stack); kv_destroy(container_stack); return ret; |