Mercurial > vim
comparison src/popupwin.c @ 18584:351659cbadb4 v8.1.2286
patch 8.1.2286: using border highlight in popup window leaks memory
Commit: https://github.com/vim/vim/commit/622b64603748cceafd47f7537b96610e824e0680
Author: Bram Moolenaar <Bram@vim.org>
Date: Sun Nov 10 15:16:54 2019 +0100
patch 8.1.2286: using border highlight in popup window leaks memory
Problem: Using border highlight in popup window leaks memory.
Solution: Free memory before overwriting. (Dominique Pelle, closes https://github.com/vim/vim/issues/5203)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Sun, 10 Nov 2019 15:30:03 +0100 |
parents | e5ef5d820b5b |
children | 7dfdc319f4ff |
comparison
equal
deleted
inserted
replaced
18583:cc918e1f4ed6 | 18584:351659cbadb4 |
---|---|
753 for (i = 0, li = list->lv_first; i < 4 && i < list->lv_len; | 753 for (i = 0, li = list->lv_first; i < 4 && i < list->lv_len; |
754 ++i, li = li->li_next) | 754 ++i, li = li->li_next) |
755 { | 755 { |
756 str = tv_get_string(&li->li_tv); | 756 str = tv_get_string(&li->li_tv); |
757 if (*str != NUL) | 757 if (*str != NUL) |
758 { | |
759 vim_free(wp->w_border_highlight[i]); | |
758 wp->w_border_highlight[i] = vim_strsave(str); | 760 wp->w_border_highlight[i] = vim_strsave(str); |
761 } | |
759 } | 762 } |
760 if (list->lv_len == 1 && wp->w_border_highlight[0] != NULL) | 763 if (list->lv_len == 1 && wp->w_border_highlight[0] != NULL) |
761 for (i = 1; i < 4; ++i) | 764 for (i = 1; i < 4; ++i) |
765 { | |
766 vim_free(wp->w_border_highlight[i]); | |
762 wp->w_border_highlight[i] = | 767 wp->w_border_highlight[i] = |
763 vim_strsave(wp->w_border_highlight[0]); | 768 vim_strsave(wp->w_border_highlight[0]); |
769 } | |
764 } | 770 } |
765 } | 771 } |
766 | 772 |
767 di = dict_find(dict, (char_u *)"borderchars", -1); | 773 di = dict_find(dict, (char_u *)"borderchars", -1); |
768 if (di != NULL) | 774 if (di != NULL) |