diff options
author | Juergen Kahrs <Juergen.Kahrs@googlemail.com> | 2013-12-23 18:26:45 +0100 |
---|---|---|
committer | Juergen Kahrs <Juergen.Kahrs@googlemail.com> | 2013-12-23 18:26:45 +0100 |
commit | ee9707cc44eea3ca64cb71666ac3e8ed26a3bb7f (patch) | |
tree | 3945f1b3afd64a7147582611f21b7f5e59891e41 /gawkapi.c | |
parent | 0ac63db595a009d1f07dba8246e52710348b0798 (diff) | |
parent | c66f7da30bb5635957b6e68c1e1db7e77e7b4174 (diff) | |
download | egawk-ee9707cc44eea3ca64cb71666ac3e8ed26a3bb7f.tar.gz egawk-ee9707cc44eea3ca64cb71666ac3e8ed26a3bb7f.tar.bz2 egawk-ee9707cc44eea3ca64cb71666ac3e8ed26a3bb7f.zip |
Merge remote-tracking branch 'origin/master' into cmake
Diffstat (limited to 'gawkapi.c')
-rw-r--r-- | gawkapi.c | 11 |
1 files changed, 8 insertions, 3 deletions
@@ -934,12 +934,17 @@ api_flatten_array(awk_ext_id_t id, for (i = j = 0; i < 2 * array->table_size; i += 2, j++) { NODE *index, *value; - index = force_string(list[i]); + index = list[i]; value = list[i + 1]; /* number or string or subarray */ - /* convert index and value to ext types */ + /* + * Convert index and value to ext types. Force the + * index to be a string, since indices are always + * conceptually strings, regardless of internal optimizations + * to treat them as integers in some cases. + */ if (! node_to_awk_value(index, - & (*data)->elements[j].index, AWK_UNDEFINED)) { + & (*data)->elements[j].index, AWK_STRING)) { fatal(_("api_flatten_array: could not convert index %d\n"), (int) i); } |