diff options
author | john haque <j.eh@mchsi.com> | 2011-08-20 08:28:02 -0500 |
---|---|---|
committer | john haque <j.eh@mchsi.com> | 2011-10-12 07:33:05 -0500 |
commit | 1fea520248b42ca995c8797698c60301ea42ffe9 (patch) | |
tree | 1aa80c13392c25aa6bf3eb931fec9c83a0621e25 /extension | |
parent | f757e147f1ae8254669b3222bc24a39ee8ff9b8f (diff) | |
download | egawk-1fea520248b42ca995c8797698c60301ea42ffe9.tar.gz egawk-1fea520248b42ca995c8797698c60301ea42ffe9.tar.bz2 egawk-1fea520248b42ca995c8797698c60301ea42ffe9.zip |
Speed/memory performance improvements.
Diffstat (limited to 'extension')
-rw-r--r-- | extension/arrayparm.c | 8 | ||||
-rw-r--r-- | extension/filefuncs.c | 44 | ||||
-rw-r--r-- | extension/fork.c | 8 | ||||
-rw-r--r-- | extension/ordchr.c | 4 | ||||
-rw-r--r-- | extension/readfile.c | 2 | ||||
-rw-r--r-- | extension/rwarray.c | 6 | ||||
-rw-r--r-- | extension/testarg.c | 8 |
7 files changed, 39 insertions, 41 deletions
diff --git a/extension/arrayparm.c b/extension/arrayparm.c index 8a550ace..b0aee33d 100644 --- a/extension/arrayparm.c +++ b/extension/arrayparm.c @@ -43,13 +43,13 @@ int plugin_is_GPL_compatible; */ static NODE * -do_mkarray(int args) +do_mkarray(int nargs) { int ret = -1; NODE *var, *sub, *val; NODE **elemval; - if (do_lint && get_curfunc_arg_count() > 3) + if (do_lint && nargs > 3) lintwarn("mkarray: called with too many arguments"); var = get_array_argument(0, FALSE); @@ -60,9 +60,9 @@ do_mkarray(int args) printf("sub->type = %s\n", nodetype2str(sub->type)); printf("val->type = %s\n", nodetype2str(val->type)); - assoc_clear(var); + assoc_clear(var, NULL); - elemval = assoc_lookup(var, sub, 0); + elemval = assoc_lookup(var, sub); *elemval = dupnode(val); ret = 0; diff --git a/extension/filefuncs.c b/extension/filefuncs.c index ad7828f3..1a0a86ef 100644 --- a/extension/filefuncs.c +++ b/extension/filefuncs.c @@ -41,7 +41,7 @@ do_chdir(int nargs) NODE *newdir; int ret = -1; - if (do_lint && get_curfunc_arg_count() != 1) + if (do_lint && nargs != 1) lintwarn("chdir: called with incorrect number of arguments"); newdir = get_scalar_argument(0, FALSE); @@ -169,7 +169,7 @@ do_stat(int nargs) char *pmode; /* printable mode */ char *type = "unknown"; - if (do_lint && get_curfunc_arg_count() > 2) + if (do_lint && nargs > 2) lintwarn("stat: called with too many arguments"); /* file is first arg, array to hold results is second */ @@ -177,7 +177,7 @@ do_stat(int nargs) array = get_array_argument(1, FALSE); /* empty out the array */ - assoc_clear(array); + assoc_clear(array, NULL); /* lstat the file, if error, set ERRNO and return */ (void) force_string(file); @@ -188,76 +188,76 @@ do_stat(int nargs) } /* fill in the array */ - aptr = assoc_lookup(array, tmp = make_string("name", 4), FALSE); + aptr = assoc_lookup(array, tmp = make_string("name", 4)); *aptr = dupnode(file); unref(tmp); - aptr = assoc_lookup(array, tmp = make_string("dev", 3), FALSE); + aptr = assoc_lookup(array, tmp = make_string("dev", 3)); *aptr = make_number((AWKNUM) sbuf.st_dev); unref(tmp); - aptr = assoc_lookup(array, tmp = make_string("ino", 3), FALSE); + aptr = assoc_lookup(array, tmp = make_string("ino", 3)); *aptr = make_number((AWKNUM) sbuf.st_ino); unref(tmp); - aptr = assoc_lookup(array, tmp = make_string("mode", 4), FALSE); + aptr = assoc_lookup(array, tmp = make_string("mode", 4)); *aptr = make_number((AWKNUM) sbuf.st_mode); unref(tmp); - aptr = assoc_lookup(array, tmp = make_string("nlink", 5), FALSE); + aptr = assoc_lookup(array, tmp = make_string("nlink", 5)); *aptr = make_number((AWKNUM) sbuf.st_nlink); unref(tmp); - aptr = assoc_lookup(array, tmp = make_string("uid", 3), FALSE); + aptr = assoc_lookup(array, tmp = make_string("uid", 3)); *aptr = make_number((AWKNUM) sbuf.st_uid); unref(tmp); - aptr = assoc_lookup(array, tmp = make_string("gid", 3), FALSE); + aptr = assoc_lookup(array, tmp = make_string("gid", 3)); *aptr = make_number((AWKNUM) sbuf.st_gid); unref(tmp); - aptr = assoc_lookup(array, tmp = make_string("size", 4), FALSE); + aptr = assoc_lookup(array, tmp = make_string("size", 4)); *aptr = make_number((AWKNUM) sbuf.st_size); unref(tmp); - aptr = assoc_lookup(array, tmp = make_string("blocks", 6), FALSE); + aptr = assoc_lookup(array, tmp = make_string("blocks", 6)); *aptr = make_number((AWKNUM) sbuf.st_blocks); unref(tmp); - aptr = assoc_lookup(array, tmp = make_string("atime", 5), FALSE); + aptr = assoc_lookup(array, tmp = make_string("atime", 5)); *aptr = make_number((AWKNUM) sbuf.st_atime); unref(tmp); - aptr = assoc_lookup(array, tmp = make_string("mtime", 5), FALSE); + aptr = assoc_lookup(array, tmp = make_string("mtime", 5)); *aptr = make_number((AWKNUM) sbuf.st_mtime); unref(tmp); - aptr = assoc_lookup(array, tmp = make_string("ctime", 5), FALSE); + aptr = assoc_lookup(array, tmp = make_string("ctime", 5)); *aptr = make_number((AWKNUM) sbuf.st_ctime); unref(tmp); /* for block and character devices, add rdev, major and minor numbers */ if (S_ISBLK(sbuf.st_mode) || S_ISCHR(sbuf.st_mode)) { - aptr = assoc_lookup(array, tmp = make_string("rdev", 4), FALSE); + aptr = assoc_lookup(array, tmp = make_string("rdev", 4)); *aptr = make_number((AWKNUM) sbuf.st_rdev); unref(tmp); - aptr = assoc_lookup(array, tmp = make_string("major", 5), FALSE); + aptr = assoc_lookup(array, tmp = make_string("major", 5)); *aptr = make_number((AWKNUM) major(sbuf.st_rdev)); unref(tmp); - aptr = assoc_lookup(array, tmp = make_string("minor", 5), FALSE); + aptr = assoc_lookup(array, tmp = make_string("minor", 5)); *aptr = make_number((AWKNUM) minor(sbuf.st_rdev)); unref(tmp); } #ifdef HAVE_ST_BLKSIZE - aptr = assoc_lookup(array, tmp = make_string("blksize", 7), FALSE); + aptr = assoc_lookup(array, tmp = make_string("blksize", 7)); *aptr = make_number((AWKNUM) sbuf.st_blksize); unref(tmp); #endif /* HAVE_ST_BLKSIZE */ - aptr = assoc_lookup(array, tmp = make_string("pmode", 5), FALSE); + aptr = assoc_lookup(array, tmp = make_string("pmode", 5)); pmode = format_mode(sbuf.st_mode); *aptr = make_string(pmode, strlen(pmode)); unref(tmp); @@ -277,7 +277,7 @@ do_stat(int nargs) */ buf[linksize] = '\0'; - aptr = assoc_lookup(array, tmp = make_string("linkval", 7), FALSE); + aptr = assoc_lookup(array, tmp = make_string("linkval", 7)); *aptr = make_str_node(buf, linksize, ALREADY_MALLOCED); unref(tmp); } @@ -319,7 +319,7 @@ do_stat(int nargs) #endif } - aptr = assoc_lookup(array, tmp = make_string("type", 4), FALSE); + aptr = assoc_lookup(array, tmp = make_string("type", 4)); *aptr = make_string(type, strlen(type)); unref(tmp); diff --git a/extension/fork.c b/extension/fork.c index aff9b568..88353879 100644 --- a/extension/fork.c +++ b/extension/fork.c @@ -38,7 +38,7 @@ do_fork(int nargs) NODE **aptr; NODE *tmp; - if (do_lint && get_curfunc_arg_count() > 0) + if (do_lint && nargs > 0) lintwarn("fork: called with too many arguments"); ret = fork(); @@ -48,11 +48,11 @@ do_fork(int nargs) else if (ret == 0) { /* update PROCINFO in the child */ - aptr = assoc_lookup(PROCINFO_node, tmp = make_string("pid", 3), FALSE); + aptr = assoc_lookup(PROCINFO_node, tmp = make_string("pid", 3)); (*aptr)->numbr = (AWKNUM) getpid(); unref(tmp); - aptr = assoc_lookup(PROCINFO_node, tmp = make_string("ppid", 4), FALSE); + aptr = assoc_lookup(PROCINFO_node, tmp = make_string("ppid", 4)); (*aptr)->numbr = (AWKNUM) getppid(); unref(tmp); } @@ -73,7 +73,7 @@ do_waitpid(int nargs) pid_t pid; int options = 0; - if (do_lint && get_curfunc_arg_count() > 1) + if (do_lint && nargs > 1) lintwarn("waitpid: called with too many arguments"); pidnode = get_scalar_argument(0, FALSE); diff --git a/extension/ordchr.c b/extension/ordchr.c index efbc6d56..8926a949 100644 --- a/extension/ordchr.c +++ b/extension/ordchr.c @@ -40,7 +40,7 @@ do_ord(int nargs) NODE *str; int ret = -1; - if (do_lint && get_curfunc_arg_count() > 1) + if (do_lint && nargs > 1) lintwarn("ord: called with too many arguments"); str = get_scalar_argument(0, FALSE); @@ -67,7 +67,7 @@ do_chr(int nargs) str[0] = str[1] = '\0'; - if (do_lint && get_curfunc_arg_count() > 1) + if (do_lint && nargs > 1) lintwarn("chr: called with too many arguments"); num = get_scalar_argument(0, FALSE); diff --git a/extension/readfile.c b/extension/readfile.c index e6ee0f22..c9b1efc3 100644 --- a/extension/readfile.c +++ b/extension/readfile.c @@ -50,7 +50,7 @@ do_readfile(int nargs) char *text; int fd; - if (do_lint && get_curfunc_arg_count() > 1) + if (do_lint && nargs > 1) lintwarn("readfile: called with too many arguments"); filename = get_scalar_argument(0, FALSE); diff --git a/extension/rwarray.c b/extension/rwarray.c index 3c629579..8175c7c0 100644 --- a/extension/rwarray.c +++ b/extension/rwarray.c @@ -82,7 +82,7 @@ do_writea(int nargs) uint32_t major = MAJOR; uint32_t minor = MINOR; - if (do_lint && get_curfunc_arg_count() > 2) + if (do_lint && nargs > 2) lintwarn("writea: called with too many arguments"); /* directory is first arg, array to dump is second */ @@ -250,7 +250,7 @@ do_reada(int nargs) uint32_t minor; char magic_buf[30]; - if (do_lint && get_curfunc_arg_count() > 2) + if (do_lint && nargs > 2) lintwarn("reada: called with too many arguments"); /* directory is first arg, array to dump is second */ @@ -289,7 +289,7 @@ do_reada(int nargs) goto done1; } - assoc_clear(array); + assoc_clear(array, NULL); ret = read_array(fd, array); if (ret == 0) diff --git a/extension/testarg.c b/extension/testarg.c index ba4d56ff..4d012db5 100644 --- a/extension/testarg.c +++ b/extension/testarg.c @@ -5,17 +5,15 @@ int plugin_is_GPL_compatible; static NODE * do_check_arg(int nargs) { - int ret = 0, argc; + int ret = 0; NODE *arg1, *arg2, *arg3; - argc = get_curfunc_arg_count(); - printf("arg count: defined = %d, supplied = %d\n", - nargs, argc); + printf("arg count: defined = 3, supplied = %d\n", nargs); arg1 = get_scalar_argument(0, FALSE); arg2 = get_array_argument(1, FALSE); arg3 = get_scalar_argument(2, TRUE); /* optional */ - if (argc > 3) { + if (nargs > 3) { /* try to use an extra arg */ NODE *arg4; arg4 = get_array_argument(3, TRUE); |