Mercurial > vim
comparison src/evalfunc.c @ 15271:a6319aca721b v8.1.0644
patch 8.1.0644: finding next sign ID is inefficient
commit https://github.com/vim/vim/commit/6436cd83f90a0efc326798792e49e8ff96a43dce
Author: Bram Moolenaar <Bram@vim.org>
Date: Thu Dec 27 00:28:33 2018 +0100
patch 8.1.0644: finding next sign ID is inefficient
Problem: Finding next sign ID is inefficient.
Solution: Add next_sign_id. (Yegappan Lakshmanan, closes https://github.com/vim/vim/issues/3717)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Thu, 27 Dec 2018 00:30:06 +0100 |
parents | 8d7a3fd70ff4 |
children | 54457fc4af0b |
comparison
equal
deleted
inserted
replaced
15270:18c956b49ee5 | 15271:a6319aca721b |
---|---|
4432 get_buffer_signs(buf_T *buf, list_T *l) | 4432 get_buffer_signs(buf_T *buf, list_T *l) |
4433 { | 4433 { |
4434 signlist_T *sign; | 4434 signlist_T *sign; |
4435 dict_T *d; | 4435 dict_T *d; |
4436 | 4436 |
4437 FOR_ALL_SIGNS_IN_BUF(buf) | 4437 FOR_ALL_SIGNS_IN_BUF(buf, sign) |
4438 { | 4438 { |
4439 if ((d = sign_get_info(sign)) != NULL) | 4439 if ((d = sign_get_info(sign)) != NULL) |
4440 list_append_dict(l, d); | 4440 list_append_dict(l, d); |
4441 } | 4441 } |
4442 } | 4442 } |
11413 if ((di = dict_find(dict, (char_u *)"group", -1)) != NULL) | 11413 if ((di = dict_find(dict, (char_u *)"group", -1)) != NULL) |
11414 { | 11414 { |
11415 group = tv_get_string_chk(&di->di_tv); | 11415 group = tv_get_string_chk(&di->di_tv); |
11416 if (group == NULL) | 11416 if (group == NULL) |
11417 return; | 11417 return; |
11418 if (*group == '\0') // empty string means global group | |
11419 group = NULL; | |
11418 } | 11420 } |
11419 } | 11421 } |
11420 } | 11422 } |
11421 | 11423 |
11422 sign_get_placed(buf, lnum, sign_id, group, rettv->vval.v_list); | 11424 sign_get_placed(buf, lnum, sign_id, group, rettv->vval.v_list); |