0
0
mirror of https://github.com/vim/vim.git synced 2025-10-21 08:24:06 -04:00

patch 9.1.1692: global_functions are not constant

Problem:  global_functions are not constant
Solution: Place global_functions[] in read-only memory (Damien Lejay).

Mark global_functions[] as `static const`.  The table is never modified
at runtime, so keeping it in writable `.data` has no benefit.

Only a local pointer in func_check_arg_types() needed adjusting to
`const`.  No functional changes.

closes: #18121

Signed-off-by: Damien Lejay <damien@lejay.be>
Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
Damien Lejay
2025-08-26 21:03:31 +02:00
committed by Christian Brabandt
parent 0a9ad34cad
commit 93160530c4
3 changed files with 6 additions and 4 deletions

View File

@@ -1934,7 +1934,7 @@ typedef struct
# define TERM_FUNC(name) NULL
#endif
static funcentry_T global_functions[] =
static const funcentry_T global_functions[] =
{
{"abs", 1, 1, FEARG_1, arg1_float_or_nr,
ret_any, f_abs},
@@ -3360,7 +3360,7 @@ internal_func_check_arg_types(
return FAIL;
}
argcheck_T *argchecks = global_functions[idx].f_argcheck;
const argcheck_T *argchecks = global_functions[idx].f_argcheck;
if (argchecks == NULL)
return OK;

View File

@@ -17,7 +17,7 @@ func Test_function_lists()
" Create a file of the functions in evalfunc.c:global_functions[].
enew!
read ../evalfunc.c
1,/^static funcentry_T global_functions\[\] =$/d
1,/^static const funcentry_T global_functions\[\] =$/d
call search('^};$')
.,$d
v/^ {/d
@@ -38,7 +38,7 @@ func Test_function_lists()
" not obsolete, sorted in ASCII order.
enew!
read ../evalfunc.c
1,/^static funcentry_T global_functions\[\] =$/d
1,/^static const funcentry_T global_functions\[\] =$/d
call search('^};$')
.,$d
v/^ {/d

View File

@@ -724,6 +724,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
1692,
/**/
1691,
/**/