Problem: More memory leaks when using partial, e.g. for "exit-cb".
Solution: Don't copy the callback when using a partial.
if (item != NULL)
{
- item->cq_callback = vim_strsave(callback);
item->cq_partial = partial;
if (partial != NULL)
+ {
++partial->pt_refcount;
+ item->cq_callback = callback;
+ }
+ else
+ item->cq_callback = vim_strsave(callback);
item->cq_seq_nr = id;
item->cq_prev = head->cq_prev;
head->cq_prev = item;
}
else
{
- job->jv_exit_cb = vim_strsave(opt->jo_exit_cb);
job->jv_exit_partial = opt->jo_exit_partial;
if (job->jv_exit_partial != NULL)
+ {
+ job->jv_exit_cb = opt->jo_exit_cb;
++job->jv_exit_partial->pt_refcount;
+ }
+ else
+ job->jv_exit_cb = vim_strsave(opt->jo_exit_cb);
}
}
}
static int included_patches[] =
{ /* Add new patch number below this line */
+/**/
+ 2131,
/**/
2130,
/**/