aboutsummaryrefslogtreecommitdiffstats
path: root/str_array.c
diff options
context:
space:
mode:
authorAndrew J. Schorr <aschorr@telemetry-investments.com>2019-01-07 09:37:25 -0500
committerAndrew J. Schorr <aschorr@telemetry-investments.com>2019-01-07 09:37:25 -0500
commit683e1c07a179096aa4bd69000c817ca707019456 (patch)
tree6c7a0e2b99da17be63767595c45bf1f29f67b3c0 /str_array.c
parentf2fc8da25ca6fe6c089e89d2a612ec3271cf1ed1 (diff)
downloadegawk-683e1c07a179096aa4bd69000c817ca707019456.tar.gz
egawk-683e1c07a179096aa4bd69000c817ca707019456.tar.bz2
egawk-683e1c07a179096aa4bd69000c817ca707019456.zip
Use a struct instead of an array to contain the array methods.
Diffstat (limited to 'str_array.c')
-rw-r--r--str_array.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/str_array.c b/str_array.c
index 4972a92b..2fdd1bf2 100644
--- a/str_array.c
+++ b/str_array.c
@@ -56,7 +56,8 @@ static NODE **str_list(NODE *symbol, NODE *subs);
static NODE **str_copy(NODE *symbol, NODE *newsymb);
static NODE **str_dump(NODE *symbol, NODE *ndump);
-afunc_t str_array_func[] = {
+const array_funcs_t str_array_func = {
+ "str",
str_array_init,
(afunc_t) 0,
str_lookup,
@@ -74,7 +75,8 @@ static NODE **env_store(NODE *symbol, NODE *subs);
static NODE **env_clear(NODE *symbol, NODE *subs);
/* special case for ENVIRON */
-afunc_t env_array_func[] = {
+const array_funcs_t env_array_func = {
+ "env",
str_array_init,
(afunc_t) 0,
str_lookup,
@@ -796,7 +798,7 @@ env_clear(NODE *symbol, NODE *subs)
environ = NULL; /* ZAP! */
/* str_clear zaps the vtable, reset it */
- symbol->array_funcs = env_array_func;
+ symbol->array_funcs = & env_array_func;
return val;
}
@@ -829,5 +831,5 @@ init_env_array(NODE *env_node)
if (do_posix)
return;
- env_node->array_funcs = env_array_func;
+ env_node->array_funcs = & env_array_func;
}