aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/nvim/eval.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/nvim/eval.c b/src/nvim/eval.c
index bec234bb22..e23702ac16 100644
--- a/src/nvim/eval.c
+++ b/src/nvim/eval.c
@@ -11608,15 +11608,18 @@ static void f_json_decode(typval_T *argvars, typval_T *rettv)
return;
}
tofree = s;
+ if (s == NULL) {
+ assert(len == 0);
+ s = "";
+ }
} else {
s = (char *) get_tv_string_buf_chk(&argvars[0], (char_u *) numbuf);
if (s) {
len = strlen(s);
+ } else {
+ return;
}
}
- if (s == NULL) {
- return;
- }
if (json_decode_string(s, len, rettv) == FAIL) {
emsgf(_("E474: Failed to parse %.*s"), (int) len, s);
rettv->v_type = VAR_NUMBER;