diff options
author | Juergen Kahrs <Juergen.Kahrs@vr-web.de> | 2012-03-20 17:21:22 +0100 |
---|---|---|
committer | Juergen Kahrs <Juergen.Kahrs@vr-web.de> | 2012-03-20 17:21:22 +0100 |
commit | 2dcf0c1084fafc7bb4d8ff5435a228ce90c408f8 (patch) | |
tree | 858812d9d74191f0462a3667df05073b71bc5147 /cint_array.c | |
parent | 8dffe780526d2bd419d17917eacd91bbacbab9ec (diff) | |
parent | cd44d957787e162df4348028c22e8b9621000790 (diff) | |
download | egawk-2dcf0c1084fafc7bb4d8ff5435a228ce90c408f8.tar.gz egawk-2dcf0c1084fafc7bb4d8ff5435a228ce90c408f8.tar.bz2 egawk-2dcf0c1084fafc7bb4d8ff5435a228ce90c408f8.zip |
Merge remote-tracking branch 'origin/master' into xgawk
Diffstat (limited to 'cint_array.c')
-rw-r--r-- | cint_array.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/cint_array.c b/cint_array.c index 3d812cbb..8ec09239 100644 --- a/cint_array.c +++ b/cint_array.c @@ -316,10 +316,14 @@ cint_remove(NODE *symbol, NODE *subs) int h1; NODE *tn, *xn = symbol->xarray; - assert(symbol->nodes != NULL); + if (symbol->table_size == 0) + return NULL; + if (! ISUINT(symbol, subs)) goto xremove; + assert(symbol->nodes != NULL); + k = subs->numbr; h1 = cint_hash(k); tn = symbol->nodes[h1]; @@ -338,6 +342,7 @@ cint_remove(NODE *symbol, NODE *subs) init_array(symbol); /* re-initialize array 'symbol' */ } else if(xn != NULL && symbol->table_size == xn->table_size) { /* promote xn to symbol */ + xn->flags &= ~XARRAY; xn->parent_array = symbol->parent_array; efree(symbol->nodes); @@ -627,7 +632,7 @@ cint_option(NODE *opt, NODE *val) tmp = force_string(opt); (void) force_number(val); - if (STREQ(tmp->stptr, "NHAT")) + if (strcmp(tmp->stptr, "NHAT") == 0) NHAT = (int) val->numbr; else ret = NULL; |