Mercurial > hg > octave-avbm
changeset 6883:037c8b622a01
[project @ 2007-09-10 20:13:27 by jwe]
author | jwe |
---|---|
date | Mon, 10 Sep 2007 20:15:17 +0000 |
parents | 62cf34f42539 |
children | 1cbb8b606d63 |
files | src/ChangeLog src/data.cc src/genprops.awk |
diffstat | 3 files changed, 24 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,12 @@ +2007-09-10 John W. Eaton <jwe@octave.org> + + * genprops.awk: Add missing newline character at end of file. + From Alexander Klimov <alserkli@inbox.ru>. + +2007-09-10 David Bateman <dbateman@free.fr> + + * data.cc (do_cat): Avoid invalid indexing into ra_idx vector. + 2007-09-06 David Bateman <dbateman@free.fr> * DLD-FUNCTIONS/__delaunay__.cc, DLD-FUNCRIONS/__voronoi__.cc,
--- a/src/data.cc +++ b/src/data.cc @@ -759,10 +759,14 @@ if (error_state) return retval; - Array<octave_idx_type> ra_idx (dv.length (), 0); + int dv_len = dv.length (); + Array<octave_idx_type> ra_idx (dv_len, 0); for (int j = i; j < n_args; j++) { + if (args (j). all_zero_dims ()) + continue; + tmp = do_cat_op (tmp, args (j), ra_idx); if (error_state) @@ -770,7 +774,15 @@ dim_vector dv_tmp = args (j).dims (); - ra_idx (dim) += (dim < dv_tmp.length () ? dv_tmp (dim) : 1); + if (dim >= dv_len) + { + if (j > i) + error ("%s: indexing error", fname.c_str ()); + break; + } + else + ra_idx (dim) += (dim < dv_tmp.length () ? + dv_tmp (dim) : 1); } retval = tmp;