aboutsummaryrefslogtreecommitdiffstats
path: root/gawkapi.c
diff options
context:
space:
mode:
authorJuergen Kahrs <Juergen.Kahrs@googlemail.com>2013-12-23 18:26:45 +0100
committerJuergen Kahrs <Juergen.Kahrs@googlemail.com>2013-12-23 18:26:45 +0100
commitee9707cc44eea3ca64cb71666ac3e8ed26a3bb7f (patch)
tree3945f1b3afd64a7147582611f21b7f5e59891e41 /gawkapi.c
parent0ac63db595a009d1f07dba8246e52710348b0798 (diff)
parentc66f7da30bb5635957b6e68c1e1db7e77e7b4174 (diff)
downloadegawk-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.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/gawkapi.c b/gawkapi.c
index 61f91e8c..9936d530 100644
--- a/gawkapi.c
+++ b/gawkapi.c
@@ -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);
}