From 4490ec4e839e45a2e6923c265c7e9e64c240b805 Mon Sep 17 00:00:00 2001 From: Yegappan Lakshmanan Date: Tue, 27 Jul 2021 22:00:44 +0200 Subject: patch 8.2.3229: Vim9: runtime and compile time type checks are not the same Problem: Vim9: runtime and compile time type checks are not the same. Solution: Add more runtime type checks for builtin functions. (Yegappan Lakshmanan, closes #8646) --- src/change.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'src/change.c') diff --git a/src/change.c b/src/change.c index f77b48c742..799aa5efbc 100644 --- a/src/change.c +++ b/src/change.c @@ -281,6 +281,9 @@ f_listener_flush(typval_T *argvars, typval_T *rettv UNUSED) { buf_T *buf = curbuf; + if (in_vim9script() && check_for_opt_buffer_arg(argvars, 0) == FAIL) + return; + if (argvars[0].v_type != VAR_UNKNOWN) { buf = get_buf_arg(&argvars[0]); @@ -299,9 +302,13 @@ f_listener_remove(typval_T *argvars, typval_T *rettv) listener_T *lnr; listener_T *next; listener_T *prev; - int id = tv_get_number(argvars); + int id; buf_T *buf; + if (in_vim9script() && check_for_number_arg(argvars, 0) == FAIL) + return; + + id = tv_get_number(argvars); FOR_ALL_BUFFERS(buf) { prev = NULL; -- cgit v1.2.3