diff options
author | Arnold D. Robbins <arnold@skeeve.com> | 2014-08-18 21:08:41 +0300 |
---|---|---|
committer | Arnold D. Robbins <arnold@skeeve.com> | 2014-08-18 21:08:41 +0300 |
commit | 59c3dea5f888dd71d806e31f67ca6d9a9577eabc (patch) | |
tree | d7ccc11c4e4f66950f089563262e73f8dd667f59 /symbol.c | |
parent | 44f0c70e04a1beef988cde4950aabe29139e789a (diff) | |
download | egawk-59c3dea5f888dd71d806e31f67ca6d9a9577eabc.tar.gz egawk-59c3dea5f888dd71d806e31f67ca6d9a9577eabc.tar.bz2 egawk-59c3dea5f888dd71d806e31f67ca6d9a9577eabc.zip |
Minor cleanup in symbol.c.
Diffstat (limited to 'symbol.c')
-rw-r--r-- | symbol.c | 37 |
1 files changed, 19 insertions, 18 deletions
@@ -112,14 +112,12 @@ lookup(const char *name) continue; n = in_array(tables[i], tmp); - if (n != NULL) { - unref(tmp); - return n; - } + if (n != NULL) + break; } unref(tmp); - return n; /* NULL */ + return n; /* NULL or new place */ } /* make_params --- allocate function parameters for the symbol table */ @@ -155,11 +153,13 @@ install_params(NODE *func) if (func == NULL) return; + assert(func->type == Node_func); - if ((pcount = func->param_cnt) <= 0 - || (parms = func->fparms) == NULL - ) + + if ( (pcount = func->param_cnt) <= 0 + || (parms = func->fparms) == NULL) return; + for (i = 0; i < pcount; i++) (void) install(parms[i].param, parms + i, Node_param_list); } @@ -177,10 +177,11 @@ remove_params(NODE *func) if (func == NULL) return; + assert(func->type == Node_func); - if ((pcount = func->param_cnt) <= 0 - || (parms = func->fparms) == NULL - ) + + if ( (pcount = func->param_cnt) <= 0 + || (parms = func->fparms) == NULL) return; for (i = pcount - 1; i >= 0; i--) { @@ -191,11 +192,11 @@ remove_params(NODE *func) assert(p->type == Node_param_list); tmp = make_string(p->vname, strlen(p->vname)); tmp2 = in_array(param_table, tmp); - if (tmp2 != NULL && tmp2->dup_ent != NULL) { + if (tmp2 != NULL && tmp2->dup_ent != NULL) tmp2->dup_ent = tmp2->dup_ent->dup_ent; - } else { + else (void) assoc_remove(param_table, tmp); - } + unref(tmp); } @@ -312,9 +313,9 @@ install(char *name, NODE *parm, NODETYPE type) table = global_table; } - if (parm != NULL) { + if (parm != NULL) r = parm; - } else { + else { /* global symbol */ r = make_symbol(name, type); if (type == Node_func) @@ -344,7 +345,6 @@ simple: return r; } - /* comp_symbol --- compare two (variable or function) names */ static int @@ -517,7 +517,8 @@ release_symbols(NODE *symlist, int keep_globals) for (p = symlist->rnode; p != NULL; p = next) { if (! keep_globals) { - /* destroys globals, function, and params + /* + * destroys globals, function, and params * if still in symbol table */ destroy_symbol(p->lnode); |