aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/screen.c
diff options
context:
space:
mode:
authorBjörn Linse <bjorn.linse@gmail.com>2021-03-23 15:54:09 +0100
committerGitHub <noreply@github.com>2021-03-23 15:54:09 +0100
commited200898773295e55dd29b57bd6a4b1ada56e03e (patch)
treeeb6bf1c6aae7571a1a830bc3b392956b0328547a /src/nvim/screen.c
parenta1a0bc618f02a61c2964e22015ff73520e1d10d8 (diff)
parent06c191848bc70f97826832cd1f92736ee6a2c7cc (diff)
downloadrneovim-ed200898773295e55dd29b57bd6a4b1ada56e03e.tar.gz
rneovim-ed200898773295e55dd29b57bd6a4b1ada56e03e.tar.bz2
rneovim-ed200898773295e55dd29b57bd6a4b1ada56e03e.zip
Merge pull request #14194 from bfredl/provide_virt
memory error with ephemeral virt_text
Diffstat (limited to 'src/nvim/screen.c')
-rw-r--r--src/nvim/screen.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/src/nvim/screen.c b/src/nvim/screen.c
index 0334a808f4..095c020fe4 100644
--- a/src/nvim/screen.c
+++ b/src/nvim/screen.c
@@ -3922,9 +3922,8 @@ static int win_line(win_T *wp, linenr_T lnum, int startrow, int endrow,
.hl_id = hl_err }));
do_virttext = true;
} else if (has_decor) {
- VirtText *vp = decor_redraw_virt_text(wp->w_buffer, &decor_state);
- if (vp) {
- virt_text = *vp;
+ virt_text = decor_redraw_virt_text(wp->w_buffer, &decor_state);
+ if (kv_size(virt_text)) {
do_virttext = true;
}
}
@@ -4354,10 +4353,10 @@ void draw_virt_text(buf_T *buf, int *end_col, int max_col)
DecorState *state = &decor_state;
for (size_t i = 0; i < kv_size(state->active); i++) {
HlRange *item = &kv_A(state->active, i);
- if (item->start_row == state->row && item->virt_text
+ if (item->start_row == state->row && kv_size(item->virt_text)
&& item->virt_text_pos == kVTOverlay
&& item->virt_col >= 0) {
- VirtText vt = *item->virt_text;
+ VirtText vt = item->virt_text;
LineState s = LINE_STATE("");
int virt_attr = 0;
int col = item->virt_col;