Mercurial > vim
diff src/proto/typval.pro @ 26644:2fc1e528e0e1 v8.2.3851
patch 8.2.3851: Vim9: overhead when comparing string, dict or function
Commit: https://github.com/vim/vim/commit/265f811f5a2dac81d9698f5202a661a04ed095f1
Author: Bram Moolenaar <Bram@vim.org>
Date: Sun Dec 19 12:33:05 2021 +0000
patch 8.2.3851: Vim9: overhead when comparing string, dict or function
Problem: Vim9: overhead when comparing string, dict or function.
Solution: Call the intented compare function directly. Refactor to avoid
duplicated code.
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Sun, 19 Dec 2021 13:45:03 +0100 |
parents | 6fd15d82e898 |
children | 7f4cc4e58f75 |
line wrap: on
line diff
--- a/src/proto/typval.pro +++ b/src/proto/typval.pro @@ -27,11 +27,11 @@ int check_for_opt_chan_or_job_arg(typval int check_for_job_arg(typval_T *args, int idx); int check_for_opt_job_arg(typval_T *args, int idx); int check_for_string_or_number_arg(typval_T *args, int idx); +int check_for_opt_string_or_number_arg(typval_T *args, int idx); int check_for_buffer_arg(typval_T *args, int idx); int check_for_opt_buffer_arg(typval_T *args, int idx); int check_for_lnum_arg(typval_T *args, int idx); int check_for_opt_lnum_arg(typval_T *args, int idx); -int check_for_opt_string_or_number_arg(typval_T *args, int idx); int check_for_string_or_blob_arg(typval_T *args, int idx); int check_for_string_or_list_arg(typval_T *args, int idx); int check_for_string_or_list_or_blob_arg(typval_T *args, int idx); @@ -54,7 +54,12 @@ char_u *tv_get_string_buf_chk_strict(typ char_u *tv_stringify(typval_T *varp, char_u *buf); int tv_check_lock(typval_T *tv, char_u *name, int use_gettext); void copy_tv(typval_T *from, typval_T *to); -int typval_compare(typval_T *typ1, typval_T *typ2, exprtype_T type, int ic); +int typval_compare(typval_T *tv1, typval_T *tv2, exprtype_T type, int ic); +int typval_compare_list(typval_T *tv1, typval_T *tv2, exprtype_T type, int ic, int *res); +int typval_compare_blob(typval_T *tv1, typval_T *tv2, exprtype_T type, int *res); +int typval_compare_dict(typval_T *tv1, typval_T *tv2, exprtype_T type, int ic, int *res); +int typval_compare_func(typval_T *tv1, typval_T *tv2, exprtype_T type, int ic, int *res); +int typval_compare_string(typval_T *tv1, typval_T *tv2, exprtype_T type, int ic, int *res); char_u *typval_tostring(typval_T *arg, int quotes); int tv_islocked(typval_T *tv); int tv_equal(typval_T *tv1, typval_T *tv2, int ic, int recursive);