aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/eval.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/nvim/eval.c')
-rw-r--r--src/nvim/eval.c27
1 files changed, 2 insertions, 25 deletions
diff --git a/src/nvim/eval.c b/src/nvim/eval.c
index 5a8fe4076e..57d7002739 100644
--- a/src/nvim/eval.c
+++ b/src/nvim/eval.c
@@ -12744,32 +12744,9 @@ static int conv_error(const char *const msg, const MPConvStack *const mpstack,
ga_concat(&msg_ga, IObuff);
} else {
typval_T key_tv = li->li_tv.vval.v_list->lv_first->li_tv;
- trylevel++;
- typval_T rettv;
- int doesrange;
- char *key;
- bool free_key = false;
- if (call_func((char_u *) "msgpack#string",
- sizeof("msgpack#string") - 1,
- &rettv, 1, &key_tv, 0L, 0L, &doesrange, true,
- NULL) == FAIL
- || ((key = (char *) get_tv_string(&rettv)) == NULL)
- || did_throw
- || (msg_list != NULL && *msg_list != NULL)) {
- key = tv2string(&key_tv, NULL);
- free_key = true;
- }
- did_emsg = false;
- discard_current_exception();
- if (msg_list != NULL && *msg_list != NULL) {
- free_global_msglist();
- }
- trylevel--;
+ char *const key = echo_string(&key_tv, NULL);
vim_snprintf((char *) IObuff, IOSIZE, key_pair_msg, key, idx);
- clear_tv(&rettv);
- if (free_key) {
- xfree(key);
- }
+ xfree(key);
ga_concat(&msg_ga, IObuff);
}
break;