aboutsummaryrefslogtreecommitdiffstats
path: root/extension/arrayparm.c
diff options
context:
space:
mode:
authorArnold D. Robbins <arnold@skeeve.com>2010-11-18 23:00:31 +0200
committerArnold D. Robbins <arnold@skeeve.com>2010-11-18 23:00:31 +0200
commit6f3612539c425da2bc1d34db621696e6a273b01c (patch)
tree9623b3ac2c54a93e5eed3be2b1dda7f4e4bf0e47 /extension/arrayparm.c
parent4e3701015635401df2fc4da58abaab7645f4ebd3 (diff)
downloadegawk-6f3612539c425da2bc1d34db621696e6a273b01c.tar.gz
egawk-6f3612539c425da2bc1d34db621696e6a273b01c.tar.bz2
egawk-6f3612539c425da2bc1d34db621696e6a273b01c.zip
Bring latest byte code gawk into git. Hurray!
Diffstat (limited to 'extension/arrayparm.c')
-rw-r--r--extension/arrayparm.c21
1 files changed, 6 insertions, 15 deletions
diff --git a/extension/arrayparm.c b/extension/arrayparm.c
index ddf1c8c4..281b50a2 100644
--- a/extension/arrayparm.c
+++ b/extension/arrayparm.c
@@ -41,8 +41,7 @@
*/
static NODE *
-do_mkarray(tree)
-NODE *tree;
+do_mkarray(int args)
{
int ret = -1;
NODE *var, *sub, *val;
@@ -51,13 +50,9 @@ NODE *tree;
if (do_lint && get_curfunc_arg_count() > 3)
lintwarn("mkarray: called with too many arguments");
- var = get_argument(tree, 0);
- if (var == NULL)
- var = stack_ptr[0];
-
- var = get_array(var);
- sub = get_argument(tree, 1);
- val = get_argument(tree, 2);
+ var = get_array_argument(0, FALSE);
+ sub = get_scalar_argument(1, FALSE);
+ val = get_scalar_argument(2, FALSE);
printf("var->type = %s\n", nodetype2str(var->type));
printf("sub->type = %s\n", nodetype2str(sub->type));
@@ -69,12 +64,8 @@ NODE *tree;
*elemval = dupnode(val);
ret = 0;
-
/* Set the return value */
- set_value(tmp_number((AWKNUM) ret));
-
- /* Just to make the interpreter happy */
- return tmp_number((AWKNUM) 0);
+ return make_number((AWKNUM) ret);
}
/* dlload --- load new builtins in this library */
@@ -86,5 +77,5 @@ void *dl;
{
make_builtin("mkarray", do_mkarray, 3);
- return tmp_number((AWKNUM) 0);
+ return make_number((AWKNUM) 0);
}