comparison src/popupwin.c @ 20392:4c317d8c1051 v8.2.0751

patch 8.2.0751: Vim9: performance can be improved Commit: https://github.com/vim/vim/commit/7e9f351b2e69b498c4ee5004d7459844e1ba191a Author: Bram Moolenaar <Bram@vim.org> Date: Wed May 13 22:44:22 2020 +0200 patch 8.2.0751: Vim9: performance can be improved Problem: Vim9: performance can be improved. Solution: Don't call break. Inline check for list materialize. Make an inline version of ga_grow().
author Bram Moolenaar <Bram@vim.org>
date Wed, 13 May 2020 22:45:04 +0200
parents 3b3589275ab9
children 3fe45aa3bbc5
comparison
equal deleted inserted replaced
20391:9ceee4daa596 20392:4c317d8c1051
96 96
97 for (i = 0; i < 4; ++i) 97 for (i = 0; i < 4; ++i)
98 array[i] = 1; 98 array[i] = 1;
99 if (list != NULL) 99 if (list != NULL)
100 { 100 {
101 range_list_materialize(list); 101 CHECK_LIST_MATERIALIZE(list);
102 for (i = 0, li = list->lv_first; i < 4 && i < list->lv_len; 102 for (i = 0, li = list->lv_first; i < 4 && i < list->lv_len;
103 ++i, li = li->li_next) 103 ++i, li = li->li_next)
104 { 104 {
105 nr = (int)tv_get_number(&li->li_tv); 105 nr = (int)tv_get_number(&li->li_tv);
106 if (nr >= 0) 106 if (nr >= 0)
514 list_T *l = di->di_tv.vval.v_list; 514 list_T *l = di->di_tv.vval.v_list;
515 listitem_T *li; 515 listitem_T *li;
516 int mincol; 516 int mincol;
517 int maxcol; 517 int maxcol;
518 518
519 range_list_materialize(l); 519 CHECK_LIST_MATERIALIZE(l);
520 li = l->lv_first; 520 li = l->lv_first;
521 if (l->lv_len == 3) 521 if (l->lv_len == 3)
522 { 522 {
523 varnumber_T nr = tv_get_number(&l->lv_first->li_tv); 523 varnumber_T nr = tv_get_number(&l->lv_first->li_tv);
524 524
754 { 754 {
755 list_T *list = di->di_tv.vval.v_list; 755 list_T *list = di->di_tv.vval.v_list;
756 listitem_T *li; 756 listitem_T *li;
757 int i; 757 int i;
758 758
759 range_list_materialize(list); 759 CHECK_LIST_MATERIALIZE(list);
760 for (i = 0, li = list->lv_first; i < 4 && i < list->lv_len; 760 for (i = 0, li = list->lv_first; i < 4 && i < list->lv_len;
761 ++i, li = li->li_next) 761 ++i, li = li->li_next)
762 { 762 {
763 str = tv_get_string(&li->li_tv); 763 str = tv_get_string(&li->li_tv);
764 if (*str != NUL) 764 if (*str != NUL)
788 listitem_T *li; 788 listitem_T *li;
789 int i; 789 int i;
790 790
791 if (list != NULL) 791 if (list != NULL)
792 { 792 {
793 range_list_materialize(list); 793 CHECK_LIST_MATERIALIZE(list);
794 for (i = 0, li = list->lv_first; i < 8 && i < list->lv_len; 794 for (i = 0, li = list->lv_first; i < 8 && i < list->lv_len;
795 ++i, li = li->li_next) 795 ++i, li = li->li_next)
796 { 796 {
797 str = tv_get_string(&li->li_tv); 797 str = tv_get_string(&li->li_tv);
798 if (*str != NUL) 798 if (*str != NUL)
843 { 843 {
844 ok = FALSE; 844 ok = FALSE;
845 break; 845 break;
846 } 846 }
847 else 847 else
848 range_list_materialize(li->li_tv.vval.v_list); 848 CHECK_LIST_MATERIALIZE(li->li_tv.vval.v_list);
849 } 849 }
850 } 850 }
851 if (ok) 851 if (ok)
852 { 852 {
853 wp->w_popup_mask = di->di_tv.vval.v_list; 853 wp->w_popup_mask = di->di_tv.vval.v_list;