From cb8ea55d7174c44ece72098eb853aacd608a0aa3 Mon Sep 17 00:00:00 2001 From: "Justin M. Keyes" Date: Wed, 9 May 2018 21:44:38 +0200 Subject: nvim_eval: fix memory leak --- src/nvim/api/vim.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/nvim/api/vim.c b/src/nvim/api/vim.c index 1f7f13c831..fd9cf332d5 100644 --- a/src/nvim/api/vim.c +++ b/src/nvim/api/vim.c @@ -290,13 +290,15 @@ Object nvim_eval(String expr, Error *err) try_start(); typval_T rettv; - if (eval0((char_u *)expr.data, &rettv, NULL, true) == FAIL) { - // This generic error should be overwritten by try_end() since #8371. - api_set_error(err, kErrorTypeException, "Failed to evaluate expression"); - } + int ok = eval0((char_u *)expr.data, &rettv, NULL, true); if (!try_end(err)) { - rv = vim_to_object(&rettv); + if (ok == FAIL) { + // Should never happen, try_end() should get the error. #8371 + api_set_error(err, kErrorTypeException, "Failed to evaluate expression"); + } else { + rv = vim_to_object(&rettv); + } } tv_clear(&rettv); -- cgit