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)