neovim

Neovim text editor
git clone https://git.dasho.dev/neovim.git
Log | Files | Refs | README

commit f6929ea51d21034c6ed00d68a727c2c7cd7ec6ac
parent 6c2f02cbd02e8fd90e8ffae271dad3df48a54c4a
Author: luukvbaal <31730729+luukvbaal@users.noreply.github.com>
Date:   Tue, 17 Jan 2023 02:51:01 +0100

fix(tabline): avoid memory leak in tabline click definitions (#21847)

Problem:    Memory is leaked in tabline click definitions since
            https://github.com/neovim/neovim/pull/21008.
Solution:   Add back a call to `stl_clear_click_defs()` that was lost in
            the refactor PR.
Diffstat:
Msrc/nvim/statusline.c | 4++++
Mtest/functional/ui/tabline_spec.lua | 6++++++
2 files changed, 10 insertions(+), 0 deletions(-)

diff --git a/src/nvim/statusline.c b/src/nvim/statusline.c @@ -733,6 +733,10 @@ void draw_tabline(void) return; } + // Clear tab_page_click_defs: Clicking outside of tabs has no effect. + assert(tab_page_click_defs_size >= (size_t)Columns); + stl_clear_click_defs(tab_page_click_defs, tab_page_click_defs_size); + // Use the 'tabline' option if it's set. if (*p_tal != NUL) { win_redr_custom(NULL, false, false); diff --git a/test/functional/ui/tabline_spec.lua b/test/functional/ui/tabline_spec.lua @@ -119,4 +119,10 @@ describe("tabline", function() [2] = {bold = true, foreground = Screen.colors.Blue}; }} end) + + it('click definitions do not leak memory #21765', function() + command('set tabline=%@MyClickFunc@MyClickText%T') + command('set showtabline=2') + command('redrawtabline') + end) end)