diff options
author | Arnold D. Robbins <arnold@skeeve.com> | 2012-06-24 21:07:22 +0300 |
---|---|---|
committer | Arnold D. Robbins <arnold@skeeve.com> | 2012-06-24 21:07:22 +0300 |
commit | 37cd3566b9b74c43d5f11f1cba8dec147a25e474 (patch) | |
tree | 86bc4f722b6fd17c5dcf183f1a82ca20e2786454 /gawkapi.c | |
parent | 115d332143b1a9d23bbf57088a577e778dcf31f8 (diff) | |
download | egawk-37cd3566b9b74c43d5f11f1cba8dec147a25e474.tar.gz egawk-37cd3566b9b74c43d5f11f1cba8dec147a25e474.tar.bz2 egawk-37cd3566b9b74c43d5f11f1cba8dec147a25e474.zip |
Get rwarray extension working with new API.
Diffstat (limited to 'gawkapi.c')
-rw-r--r-- | gawkapi.c | 11 |
1 files changed, 8 insertions, 3 deletions
@@ -528,6 +528,7 @@ api_set_array_element(awk_ext_id_t id, awk_array_t a_cookie, { NODE *array = (NODE *)a_cookie; NODE *tmp; + NODE *elem; NODE **aptr; /* don't check for index len zero, null str is ok as index */ @@ -542,9 +543,13 @@ api_set_array_element(awk_ext_id_t id, awk_array_t a_cookie, aptr = assoc_lookup(array, tmp); unref(tmp); unref(*aptr); - *aptr = awk_value_to_node(& element->value); - if ((*aptr)->type == Node_var_array) - (*aptr)->parent_array = array; + elem = *aptr = awk_value_to_node(& element->value); + if (elem->type == Node_var_array) { + elem->parent_array = array; + elem->vname = estrdup(element->index.str_value.str, + element->index.str_value.len); + make_aname(elem); + } return true; } |