diff options
author | Arnold D. Robbins <arnold@skeeve.com> | 2010-11-18 23:00:31 +0200 |
---|---|---|
committer | Arnold D. Robbins <arnold@skeeve.com> | 2010-11-18 23:00:31 +0200 |
commit | 6f3612539c425da2bc1d34db621696e6a273b01c (patch) | |
tree | 9623b3ac2c54a93e5eed3be2b1dda7f4e4bf0e47 /extension/arrayparm.c | |
parent | 4e3701015635401df2fc4da58abaab7645f4ebd3 (diff) | |
download | egawk-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.c | 21 |
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); } |