Mercurial > octave
changeset 22021:e67ff2b11147
Check that second argument to size () is a scalar (bug #48368).
* data.cc (Fsize): Fail if second argument is not a scalar.
author | Lachlan Andrew <lachlanbis@gmail.com> |
---|---|
date | Sat, 02 Jul 2016 05:11:09 +1000 |
parents | e154d23b2fd1 |
children | 278fc29b69ca |
files | libinterp/corefcn/data.cc scripts/special-matrix/gallery.m |
diffstat | 2 files changed, 6 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/libinterp/corefcn/data.cc Fri Jul 01 08:14:50 2016 -0700 +++ b/libinterp/corefcn/data.cc Sat Jul 02 05:11:09 2016 +1000 @@ -2815,7 +2815,10 @@ } else if (nargin == 2 && nargout < 2) { - octave_idx_type nd = args(1).xidx_type_value ("size: DIM must be an integer"); + if (! args(1).is_real_scalar ()) + error ("size: DIM must be a positive integer"); + + octave_idx_type nd = args(1).idx_type_value (); const dim_vector dv = args(0).dims ();
--- a/scripts/special-matrix/gallery.m Fri Jul 01 08:14:50 2016 -0700 +++ b/scripts/special-matrix/gallery.m Sat Jul 02 05:11:09 2016 +1000 @@ -3009,8 +3009,8 @@ %!assert (size (gallery ("kms", 5, 0.2)), [5 5]) %!assert (size (gallery ("krylov", 4)), [4 4]) -%!assert (size (gallery ("krylov", ones (4)), [4 4])) -%!assert (size (gallery ("krylov", ones (4), [.2 .3 .4 .5], 3), [4 4])) +%!assert (size (gallery ("krylov", ones (4))), [4 4]) +%!assert (size (gallery ("krylov", ones (4), [.2 .3 .4 .5], 3)), [4 3]) %!assert (size (gallery ("lauchli", 5)), [6 5]) %!assert (size (gallery ("lauchli", 5, 3)), [6 5])