diff options
| author | Björn Linse <bjorn.linse@gmail.com> | 2021-03-23 11:02:14 +0100 | 
|---|---|---|
| committer | Björn Linse <bjorn.linse@gmail.com> | 2021-03-23 13:58:18 +0100 | 
| commit | 06c191848bc70f97826832cd1f92736ee6a2c7cc (patch) | |
| tree | 7ca9b007ec286b2d0d69d6b2facef32e4080caa7 /src/nvim/screen.c | |
| parent | 80e122ae5d6bc02c8bea33528f0e1d16e48489b6 (diff) | |
| download | rneovim-06c191848bc70f97826832cd1f92736ee6a2c7cc.tar.gz rneovim-06c191848bc70f97826832cd1f92736ee6a2c7cc.tar.bz2 rneovim-06c191848bc70f97826832cd1f92736ee6a2c7cc.zip | |
decorations: memory error with ephemeral virt_text
Diffstat (limited to 'src/nvim/screen.c')
| -rw-r--r-- | src/nvim/screen.c | 9 | 
1 files changed, 4 insertions, 5 deletions
| diff --git a/src/nvim/screen.c b/src/nvim/screen.c index d50520f49e..824b7046e5 100644 --- a/src/nvim/screen.c +++ b/src/nvim/screen.c @@ -3921,9 +3921,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;          }        } @@ -4353,10 +4352,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; | 
