diff options
-rw-r--r-- | src/nvim/os/job.c | 8 | ||||
-rw-r--r-- | src/nvim/os/provider.c | 1 |
2 files changed, 9 insertions, 0 deletions
diff --git a/src/nvim/os/job.c b/src/nvim/os/job.c index 203aa2c990..5c45c3727e 100644 --- a/src/nvim/os/job.c +++ b/src/nvim/os/job.c @@ -402,6 +402,14 @@ static void close_cb(uv_handle_t *handle) rstream_free(job->out); rstream_free(job->err); wstream_free(job->in); + + // Free data memory of process and pipe handles, that was allocated + // by handle_set_job in job_start. + free(job->proc.data); + free(job->proc_stdin.data); + free(job->proc_stdout.data); + free(job->proc_stderr.data); + shell_free_argv(job->proc_opts.args); free(job); } diff --git a/src/nvim/os/provider.c b/src/nvim/os/provider.c index 2e42cbb8f2..99cc078e94 100644 --- a/src/nvim/os/provider.c +++ b/src/nvim/os/provider.c @@ -109,6 +109,7 @@ Object provider_call(char *method, Object arg) "Provider for \"%s\" is not available", method); report_error(buf); + msgpack_rpc_free_object(arg); return NIL; } |