diff options
author | Arnold D. Robbins <arnold@skeeve.com> | 2017-10-28 23:22:15 +0300 |
---|---|---|
committer | Arnold D. Robbins <arnold@skeeve.com> | 2017-10-28 23:22:15 +0300 |
commit | 750e3168705de678474fea0a551f9cf29e9e077d (patch) | |
tree | db51fbf65f7d3c73aa8c4bce3ac84a897432e155 | |
parent | 92e8b028d2d33884ea5ea50fc879cbca60c9f5f2 (diff) | |
download | egawk-750e3168705de678474fea0a551f9cf29e9e077d.tar.gz egawk-750e3168705de678474fea0a551f9cf29e9e077d.tar.bz2 egawk-750e3168705de678474fea0a551f9cf29e9e077d.zip |
Small improvements in extension/rwarray.c.
-rw-r--r-- | extension/ChangeLog | 5 | ||||
-rw-r--r-- | extension/rwarray.c | 6 |
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)) { |