aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/buffer_updates.c
diff options
context:
space:
mode:
authorbfredl <bjorn.linse@gmail.com>2024-02-11 15:46:14 +0100
committerbfredl <bjorn.linse@gmail.com>2024-02-13 11:54:44 +0100
commit0353dd3029f9ce31c3894530385443a90f6677ee (patch)
treefa288427461ee2c1ce1c271d01a760977a161bf5 /src/nvim/buffer_updates.c
parent89135cff030b06f60cd596a9ae81cd9583987517 (diff)
downloadrneovim-0353dd3029f9ce31c3894530385443a90f6677ee.tar.gz
rneovim-0353dd3029f9ce31c3894530385443a90f6677ee.tar.bz2
rneovim-0353dd3029f9ce31c3894530385443a90f6677ee.zip
refactor(lua): use Arena when converting from lua stack to API args
and for return value of nlua_exec/nlua_call_ref, as this uses the same family of functions. NB: the handling of luaref:s is a bit of a mess. add api_luarefs_free_XX functions as a stop-gap as refactoring luarefs is a can of worms for another PR:s. as a minor feature/bug-fix, nvim_buf_call and nvim_win_call now preserves arbitrary return values.
Diffstat (limited to 'src/nvim/buffer_updates.c')
-rw-r--r--src/nvim/buffer_updates.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/src/nvim/buffer_updates.c b/src/nvim/buffer_updates.c
index 1a02ac78d7..e725678937 100644
--- a/src/nvim/buffer_updates.c
+++ b/src/nvim/buffer_updates.c
@@ -179,7 +179,7 @@ void buf_updates_unload(buf_T *buf, bool can_reload)
ADD_C(args, BUFFER_OBJ(buf->handle));
TEXTLOCK_WRAP({
- nlua_call_ref(thecb, keep ? "reload" : "detach", args, false, NULL);
+ nlua_call_ref(thecb, keep ? "reload" : "detach", args, false, NULL, NULL);
});
}
@@ -295,10 +295,10 @@ void buf_updates_send_changes(buf_T *buf, linenr_T firstline, int64_t num_added,
Object res;
TEXTLOCK_WRAP({
- res = nlua_call_ref(cb.on_lines, "lines", args, false, NULL);
+ res = nlua_call_ref(cb.on_lines, "lines", args, kRetNilBool, NULL, NULL);
});
- if (res.type == kObjectTypeBoolean && res.data.boolean == true) {
+ if (LUARET_TRUTHY(res)) {
buffer_update_callbacks_free(cb);
keep = false;
}
@@ -345,10 +345,10 @@ void buf_updates_send_splice(buf_T *buf, int start_row, colnr_T start_col, bcoun
Object res;
TEXTLOCK_WRAP({
- res = nlua_call_ref(cb.on_bytes, "bytes", args, false, NULL);
+ res = nlua_call_ref(cb.on_bytes, "bytes", args, kRetNilBool, NULL, NULL);
});
- if (res.type == kObjectTypeBoolean && res.data.boolean == true) {
+ if (LUARET_TRUTHY(res)) {
buffer_update_callbacks_free(cb);
keep = false;
}
@@ -381,10 +381,10 @@ void buf_updates_changedtick(buf_T *buf)
Object res;
TEXTLOCK_WRAP({
- res = nlua_call_ref(cb.on_changedtick, "changedtick", args, false, NULL);
+ res = nlua_call_ref(cb.on_changedtick, "changedtick", args, kRetNilBool, NULL, NULL);
});
- if (res.type == kObjectTypeBoolean && res.data.boolean == true) {
+ if (LUARET_TRUTHY(res)) {
buffer_update_callbacks_free(cb);
keep = false;
}