comparison src/channel.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 42ab4d40e78f
children bed30e6b5a09
comparison
equal deleted inserted replaced
20391:9ceee4daa596 20392:4c317d8c1051
2397 while (item != NULL) 2397 while (item != NULL)
2398 { 2398 {
2399 list_T *l = item->jq_value->vval.v_list; 2399 list_T *l = item->jq_value->vval.v_list;
2400 typval_T *tv; 2400 typval_T *tv;
2401 2401
2402 range_list_materialize(l); 2402 CHECK_LIST_MATERIALIZE(l);
2403 tv = &l->lv_first->li_tv; 2403 tv = &l->lv_first->li_tv;
2404 2404
2405 if ((without_callback || !item->jq_no_callback) 2405 if ((without_callback || !item->jq_no_callback)
2406 && ((id > 0 && tv->v_type == VAR_NUMBER && tv->vval.v_number == id) 2406 && ((id > 0 && tv->v_type == VAR_NUMBER && tv->vval.v_number == id)
2407 || (id <= 0 && (tv->v_type != VAR_NUMBER 2407 || (id <= 0 && (tv->v_type != VAR_NUMBER
5300 { 5300 {
5301 semsg(_(e_invargval), "ansi_colors"); 5301 semsg(_(e_invargval), "ansi_colors");
5302 return FAIL; 5302 return FAIL;
5303 } 5303 }
5304 5304
5305 range_list_materialize(item->vval.v_list); 5305 CHECK_LIST_MATERIALIZE(item->vval.v_list);
5306 li = item->vval.v_list->lv_first; 5306 li = item->vval.v_list->lv_first;
5307 for (; li != NULL && n < 16; li = li->li_next, n++) 5307 for (; li != NULL && n < 16; li = li->li_next, n++)
5308 { 5308 {
5309 char_u *color_name; 5309 char_u *color_name;
5310 guicolor_T guicolor; 5310 guicolor_T guicolor;
5727 win32_build_cmd(list_T *l, garray_T *gap) 5727 win32_build_cmd(list_T *l, garray_T *gap)
5728 { 5728 {
5729 listitem_T *li; 5729 listitem_T *li;
5730 char_u *s; 5730 char_u *s;
5731 5731
5732 range_list_materialize(l); 5732 CHECK_LIST_MATERIALIZE(l);
5733 FOR_ALL_LIST_ITEMS(l, li) 5733 FOR_ALL_LIST_ITEMS(l, li)
5734 { 5734 {
5735 s = tv_get_string_chk(&li->li_tv); 5735 s = tv_get_string_chk(&li->li_tv);
5736 if (s == NULL) 5736 if (s == NULL)
5737 return FAIL; 5737 return FAIL;