mirror of
https://github.com/neovim/neovim.git
synced 2025-10-08 10:56:31 +00:00
refactor(object): get rid of redundant FIXED_TEMP_ARRAY
use the MAXSIZE_TEMP_ARRAY + ADD_C pattern instead, as exemplified by the changes in this commit.
This commit is contained in:
@@ -538,9 +538,9 @@ void nvim_buf_set_text(uint64_t channel_id, Buffer buffer, Integer start_row, In
|
||||
Integer end_row, Integer end_col, ArrayOf(String) replacement, Error *err)
|
||||
FUNC_API_SINCE(7)
|
||||
{
|
||||
FIXED_TEMP_ARRAY(scratch, 1);
|
||||
MAXSIZE_TEMP_ARRAY(scratch, 1);
|
||||
if (replacement.size == 0) {
|
||||
scratch.items[0] = STRING_OBJ(STATIC_CSTR_AS_STRING(""));
|
||||
ADD_C(scratch, STRING_OBJ(STATIC_CSTR_AS_STRING("")));
|
||||
replacement = scratch;
|
||||
}
|
||||
|
||||
|
@@ -74,12 +74,6 @@
|
||||
#define ADD_C(array, item) \
|
||||
kv_push_c(array, item)
|
||||
|
||||
#define FIXED_TEMP_ARRAY(name, fixsize) \
|
||||
Array name = ARRAY_DICT_INIT; \
|
||||
Object name##__items[fixsize]; \
|
||||
name.size = fixsize; \
|
||||
name.items = name##__items; \
|
||||
|
||||
#define MAXSIZE_TEMP_ARRAY(name, maxsize) \
|
||||
Array name = ARRAY_DICT_INIT; \
|
||||
Object name##__items[maxsize]; \
|
||||
|
@@ -473,10 +473,10 @@ Object nvim_exec_lua(String code, Array args, Error *err)
|
||||
Object nvim_notify(String msg, Integer log_level, Dictionary opts, Error *err)
|
||||
FUNC_API_SINCE(7)
|
||||
{
|
||||
FIXED_TEMP_ARRAY(args, 3);
|
||||
args.items[0] = STRING_OBJ(msg);
|
||||
args.items[1] = INTEGER_OBJ(log_level);
|
||||
args.items[2] = DICTIONARY_OBJ(opts);
|
||||
MAXSIZE_TEMP_ARRAY(args, 3);
|
||||
ADD_C(args, STRING_OBJ(msg));
|
||||
ADD_C(args, INTEGER_OBJ(log_level));
|
||||
ADD_C(args, DICTIONARY_OBJ(opts));
|
||||
|
||||
return nlua_exec(STATIC_CSTR_AS_STRING("return vim.notify(...)"), args, err);
|
||||
}
|
||||
@@ -1010,10 +1010,10 @@ static void term_write(char *buf, size_t size, void *data)
|
||||
if (cb == LUA_NOREF) {
|
||||
return;
|
||||
}
|
||||
FIXED_TEMP_ARRAY(args, 3);
|
||||
args.items[0] = INTEGER_OBJ((Integer)chan->id);
|
||||
args.items[1] = BUFFER_OBJ(terminal_buf(chan->term));
|
||||
args.items[2] = STRING_OBJ(((String){ .data = buf, .size = size }));
|
||||
MAXSIZE_TEMP_ARRAY(args, 3);
|
||||
ADD_C(args, INTEGER_OBJ((Integer)chan->id));
|
||||
ADD_C(args, BUFFER_OBJ(terminal_buf(chan->term)));
|
||||
ADD_C(args, STRING_OBJ(((String){ .data = buf, .size = size })));
|
||||
textlock++;
|
||||
nlua_call_ref(cb, "input", args, false, NULL);
|
||||
textlock--;
|
||||
|
Reference in New Issue
Block a user