# HG changeset patch # User John W. Eaton # Date 1392308158 18000 # Node ID 0821a51a9e1b26c81585123a93a8a4588edfa084 # Parent 9d59bc3dc12d82f2353ff7a48440b90e29baa90e allow sparse arguments for dimensions in sparse function (bug #41535) * sparse.cc (Fsparse): Use get_dimensions to extract dimension args. diff -r 9d59bc3dc12d -r 0821a51a9e1b libinterp/corefcn/sparse.cc --- a/libinterp/corefcn/sparse.cc Thu Feb 13 07:45:59 2014 -0800 +++ b/libinterp/corefcn/sparse.cc Thu Feb 13 11:15:58 2014 -0500 @@ -125,21 +125,17 @@ } else if (nargin == 2) { - octave_idx_type m = 0, n = 0; - if (args(0).is_scalar_type () && args(1).is_scalar_type ()) - { - m = args(0).idx_type_value (); - n = args(1).idx_type_value (); - } - else - error ("sparse: dimensions M,N must be scalar"); + octave_idx_type m = 0; + octave_idx_type n = 0; + + get_dimensions (args(0), args(1), "sparse", m, n); if (! error_state) { if (m >= 0 && n >= 0) retval = SparseMatrix (m, n); else - error ("sparse: dimensions M,N must be positive or zero"); + error ("sparse: dimensions must be non-negative"); } } else if (nargin >= 3) @@ -169,14 +165,7 @@ if (nargin == 5) { - if (args(3).is_scalar_type () && args(4).is_scalar_type ()) - { - m = args(3).idx_type_value (); - n = args(4).idx_type_value (); - } - else - error ("sparse: expecting scalar dimensions"); - + get_dimensions (args(3), args(4), "sparse", m, n); if (! error_state && (m < 0 || n < 0)) error ("sparse: dimensions must be non-negative");