summaryrefslogtreecommitdiff
path: root/src/proto
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2022-09-28 16:16:15 +0100
committerBram Moolenaar <Bram@vim.org>2022-09-28 16:16:15 +0100
commit82418263fa91792e851cb0de879d1595327d5531 (patch)
treee14f38d9dba9dce01e0c3b6c6612ca577bf27b49 /src/proto
parent1936c765364d6a771cea5df9971318060db82730 (diff)
downloadvim-git-82418263fa91792e851cb0de879d1595327d5531.tar.gz
patch 9.0.0618: calling function for reduce() has too much overheadv9.0.0618
Problem: Calling function for reduce() has too much overhead. Solution: Do not create a funccall_T every time.
Diffstat (limited to 'src/proto')
-rw-r--r--src/proto/eval.pro3
-rw-r--r--src/proto/list.pro2
2 files changed, 3 insertions, 2 deletions
diff --git a/src/proto/eval.pro b/src/proto/eval.pro
index 27a13c949..1ac579c54 100644
--- a/src/proto/eval.pro
+++ b/src/proto/eval.pro
@@ -6,7 +6,8 @@ void eval_clear(void);
void fill_evalarg_from_eap(evalarg_T *evalarg, exarg_T *eap, int skip);
int eval_to_bool(char_u *arg, int *error, exarg_T *eap, int skip);
int eval_expr_valid_arg(typval_T *tv);
-int eval_expr_typval(typval_T *expr, typval_T *argv, int argc, typval_T *rettv);
+funccall_T *eval_expr_get_funccal(typval_T *expr, typval_T *rettv);
+int eval_expr_typval(typval_T *expr, typval_T *argv, int argc, funccall_T *fc_arg, typval_T *rettv);
int eval_expr_to_bool(typval_T *expr, int *error);
char_u *eval_to_string_skip(char_u *arg, exarg_T *eap, int skip);
void init_evalarg(evalarg_T *evalarg);
diff --git a/src/proto/list.pro b/src/proto/list.pro
index 6c3523a0a..5abe03c09 100644
--- a/src/proto/list.pro
+++ b/src/proto/list.pro
@@ -52,7 +52,7 @@ void init_static_list(staticList10_T *sl);
void f_list2str(typval_T *argvars, typval_T *rettv);
void f_sort(typval_T *argvars, typval_T *rettv);
void f_uniq(typval_T *argvars, typval_T *rettv);
-int filter_map_one(typval_T *tv, typval_T *expr, filtermap_T filtermap, typval_T *newtv, int *remp);
+int filter_map_one(typval_T *tv, typval_T *expr, filtermap_T filtermap, funccall_T *fc, typval_T *newtv, int *remp);
void f_filter(typval_T *argvars, typval_T *rettv);
void f_map(typval_T *argvars, typval_T *rettv);
void f_mapnew(typval_T *argvars, typval_T *rettv);