mirror of
https://github.com/neovim/neovim.git
synced 2025-12-05 22:22:44 +00:00
refactor(memline): distinguish mutating uses of ml_get_buf()
ml_get_buf() takes a third parameters to indicate whether the caller wants to mutate the memline data in place. However the vast majority of the call sites is using this function just to specify a buffer but without any mutation. This makes it harder to grep for the places which actually perform mutation. Solution: Remove the bool param from ml_get_buf(). it now works like ml_get() except for a non-current buffer. Add a new ml_get_buf_mut() function for the mutating use-case, which can be grepped along with the other ml_replace() etc functions which can modify the memline.
This commit is contained in:
@@ -604,12 +604,12 @@ static void get_buffer_lines(buf_T *buf, linenr_T start, linenr_T end, int retli
|
||||
}
|
||||
tv_list_alloc_ret(rettv, end - start + 1);
|
||||
while (start <= end) {
|
||||
tv_list_append_string(rettv->vval.v_list, ml_get_buf(buf, start++, false), -1);
|
||||
tv_list_append_string(rettv->vval.v_list, ml_get_buf(buf, start++), -1);
|
||||
}
|
||||
} else {
|
||||
rettv->v_type = VAR_STRING;
|
||||
rettv->vval.v_string = ((start >= 1 && start <= buf->b_ml.ml_line_count)
|
||||
? xstrdup(ml_get_buf(buf, start, false)) : NULL);
|
||||
? xstrdup(ml_get_buf(buf, start)) : NULL);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user