aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/eval/funcs.h
diff options
context:
space:
mode:
authorbfredl <bjorn.linse@gmail.com>2022-08-24 15:22:30 +0200
committerGitHub <noreply@github.com>2022-08-24 15:22:30 +0200
commitf1ea126a6eb1d9cae53eae3fedbfa51f90ee97b1 (patch)
treeb0c3c27869110cc51cda2f18d64ef9608c956481 /src/nvim/eval/funcs.h
parentf91b1885ddeaf971e17afe49b80f1b1412ecc8a2 (diff)
parent7784dc9e0d90284b0d9c9cf0833c27d4de22b7f4 (diff)
downloadrneovim-f1ea126a6eb1d9cae53eae3fedbfa51f90ee97b1.tar.gz
rneovim-f1ea126a6eb1d9cae53eae3fedbfa51f90ee97b1.tar.bz2
rneovim-f1ea126a6eb1d9cae53eae3fedbfa51f90ee97b1.zip
Merge pull request #19906 from bfredl/bigstage
perf(api): allow to use an arena for return values
Diffstat (limited to 'src/nvim/eval/funcs.h')
-rw-r--r--src/nvim/eval/funcs.h17
1 files changed, 9 insertions, 8 deletions
diff --git a/src/nvim/eval/funcs.h b/src/nvim/eval/funcs.h
index 583ee0e75e..adff0b2441 100644
--- a/src/nvim/eval/funcs.h
+++ b/src/nvim/eval/funcs.h
@@ -1,11 +1,12 @@
#ifndef NVIM_EVAL_FUNCS_H
#define NVIM_EVAL_FUNCS_H
+#include "nvim/api/private/dispatch.h"
#include "nvim/buffer_defs.h"
#include "nvim/eval/typval.h"
/// Prototype of C function that implements VimL function
-typedef void (*VimLFunc)(typval_T *args, typval_T *rvar, FunPtr data);
+typedef void (*VimLFunc)(typval_T *args, typval_T *rvar, EvalFuncData data);
/// Special flags for base_arg @see EvalFuncDef
#define BASE_NONE 0 ///< Not a method (no base argument).
@@ -13,13 +14,13 @@ typedef void (*VimLFunc)(typval_T *args, typval_T *rvar, FunPtr data);
/// Structure holding VimL function definition
typedef struct {
- char *name; ///< Name of the function.
- uint8_t min_argc; ///< Minimal number of arguments.
- uint8_t max_argc; ///< Maximal number of arguments.
- uint8_t base_arg; ///< Method base arg # (1-indexed), BASE_NONE or BASE_LAST.
- bool fast; ///< Can be run in |api-fast| events
- VimLFunc func; ///< Function implementation.
- FunPtr data; ///< Userdata for function implementation.
+ char *name; ///< Name of the function.
+ uint8_t min_argc; ///< Minimal number of arguments.
+ uint8_t max_argc; ///< Maximal number of arguments.
+ uint8_t base_arg; ///< Method base arg # (1-indexed), BASE_NONE or BASE_LAST.
+ bool fast; ///< Can be run in |api-fast| events
+ VimLFunc func; ///< Function implementation.
+ EvalFuncData data; ///< Userdata for function implementation.
} EvalFuncDef;
#ifdef INCLUDE_GENERATED_DECLARATIONS