diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/nvim/sign.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/nvim/sign.c b/src/nvim/sign.c index b1a2d1ad08..dc09bcc5a0 100644 --- a/src/nvim/sign.c +++ b/src/nvim/sign.c @@ -1021,9 +1021,14 @@ static void sign_get_placed(buf_T *buf, linenr_T lnum, int id, const char *group void free_signs(void) { cstr_t name; + kvec_t(cstr_t) names = KV_INITIAL_VALUE; map_foreach_key(&sign_map, name, { - sign_undefine_by_name(name); + kv_push(names, name); }); + for (size_t i = 0; i < kv_size(names); i++) { + sign_undefine_by_name(kv_A(names, i)); + } + kv_destroy(names); } static enum { |