aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/nvim/os/job.c8
-rw-r--r--src/nvim/os/provider.c1
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;
}