aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorzeertzjq <zeertzjq@outlook.com>2023-01-18 19:10:58 +0800
committerzeertzjq <zeertzjq@outlook.com>2023-01-19 10:36:29 +0800
commit01ddc097474627f35cc34fb7015dd26505e2ddcc (patch)
tree99f5a737c12c744d767703f49f0a20c2e5630def /src
parent295a264b65bd072bf858496e0e5de83d5b1f5ffa (diff)
downloadrneovim-01ddc097474627f35cc34fb7015dd26505e2ddcc.tar.gz
rneovim-01ddc097474627f35cc34fb7015dd26505e2ddcc.tar.bz2
rneovim-01ddc097474627f35cc34fb7015dd26505e2ddcc.zip
fix(statusline): don't leak memory with truncated click labels
Diffstat (limited to 'src')
-rw-r--r--src/nvim/statusline.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/nvim/statusline.c b/src/nvim/statusline.c
index 772b302023..29ce8dab71 100644
--- a/src/nvim/statusline.c
+++ b/src/nvim/statusline.c
@@ -1987,6 +1987,11 @@ int build_stl_str_hl(win_T *wp, char *out, size_t outlen, char *fmt, char *opt_n
// the truncation point
for (int i = 0; i < itemcnt; i++) {
if (stl_items[i].start > trunc_p) {
+ for (int j = i; j < itemcnt; j++) {
+ if (stl_items[j].type == ClickFunc) {
+ XFREE_CLEAR(stl_items[j].cmd);
+ }
+ }
itemcnt = i;
break;
}