fix(extmarks): crash with sign after many marks

fixes #27137
This commit is contained in:
bfredl committed 2024-01-23 09:24:36 +01:00
1 parent dc466f9a63
commit 54225bdb02
2 files changed
+19 -1

No files matched your search

+3 -1
View File
@@ -1576,7 +1576,9 @@ bool marktree_itr_step_out_filter(MarkTree *b, MarkTreeIter *itr, MetaFilter met
}
itr->i = itr->x->n;
marktree_itr_next(b, itr); // no filter, just reuse the code for step to parent
// no filter needed, just reuse the code path for step to parent
marktree_itr_next_skip(b, itr, true, false, NULL, NULL);
}
return itr->x;
+16
View File
@@ -4548,6 +4548,7 @@ describe('decorations: signs', function()
[1] = {foreground = Screen.colors.Blue4, background = Screen.colors.Grey};
[2] = {foreground = Screen.colors.Blue1, bold = true};
[3] = {background = Screen.colors.Yellow1, foreground = Screen.colors.Blue1};
[4] = {foreground = Screen.colors.Gray100, background = Screen.colors.Red};
}
ns = api.nvim_create_namespace 'test'
@@ -5021,6 +5022,21 @@ l5
|
]]}
end)
it('no crash with sign after many marks #27137', function()
screen:try_resize(20, 4)
insert('a')
for _ = 0, 104 do
api.nvim_buf_set_extmark(0, ns, 0, 0, {hl_group = 'Error', end_col = 1})
end
api.nvim_buf_set_extmark(0, ns, 0, 0, {sign_text = 'S1'})
screen:expect{grid=[[
S1{4:^a} |
{2:~ }|*2
|
]]}
end)
end)
describe('decorations: virt_text', function()