aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArnold D. Robbins <arnold@skeeve.com>2017-10-28 23:23:19 +0300
committerArnold D. Robbins <arnold@skeeve.com>2017-10-28 23:23:19 +0300
commit7ba932b59a753fff5ad742c3af0ba963c8153cfe (patch)
tree755f8cda809bf3479ad5fdcd773dea25b50c3c7f
parentc4202295a383fe01ac7ed1e0d29dcc93ddf3e3fc (diff)
parenta9f0aa618da1dd6b6a2c73f72e95aafb133889ff (diff)
downloadegawk-7ba932b59a753fff5ad742c3af0ba963c8153cfe.tar.gz
egawk-7ba932b59a753fff5ad742c3af0ba963c8153cfe.tar.bz2
egawk-7ba932b59a753fff5ad742c3af0ba963c8153cfe.zip
Merge branch 'master' into feature/fix-comments
-rw-r--r--extension/ChangeLog5
-rw-r--r--extension/rwarray.c6
2 files changed, 9 insertions, 2 deletions
diff --git a/extension/ChangeLog b/extension/ChangeLog
index 4bfd896b..c04e9c26 100644
--- a/extension/ChangeLog
+++ b/extension/ChangeLog
@@ -1,3 +1,8 @@
+2017-10-28 Arnold D. Robbins <arnold@skeeve.com>
+
+ * rwarray.c (do_writea): Fix description in comment.
+ (write_array): Free the flattened array if writing an element fails.
+
2017-10-19 Arnold D. Robbins <arnold@skeeve.com>
* 4.2.0: Release tar ball made.
diff --git a/extension/rwarray.c b/extension/rwarray.c
index 2e82ca76..997b6b2f 100644
--- a/extension/rwarray.c
+++ b/extension/rwarray.c
@@ -114,7 +114,7 @@ do_writea(int nargs, awk_value_t *result, struct awk_ext_func *unused)
if (nargs < 2)
goto out;
- /* directory is first arg, array to dump is second */
+ /* filename is first arg, array to dump is second */
if (! get_argument(0, AWK_STRING, & filename)) {
fprintf(stderr, _("do_writea: argument 0 is not a string\n"));
errno = EINVAL;
@@ -178,8 +178,10 @@ write_array(FILE *fp, awk_array_t array)
return awk_false;
for (i = 0; i < flat_array->count; i++) {
- if (! write_elem(fp, & flat_array->elements[i]))
+ if (! write_elem(fp, & flat_array->elements[i])) {
+ (void) release_flattened_array(array, flat_array);
return awk_false;
+ }
}
if (! release_flattened_array(array, flat_array)) {