# HG changeset patch # User Jaroslav Hajek # Date 1258701582 -3600 # Node ID 10519b4d65073f6381b0b5e40298e33f4a2324d6 # Parent 6f1ea8241c9902039b29ab2d031e1164ea969213 fix indexed numel for non-numeric indices diff -r 6f1ea8241c99 -r 10519b4d6507 src/ChangeLog --- a/src/ChangeLog Fri Nov 20 08:18:41 2009 +0100 +++ b/src/ChangeLog Fri Nov 20 08:19:42 2009 +0100 @@ -1,3 +1,8 @@ +2009-11-20 Jaroslav Hajek + + * utils.cc (dims_to_numel): Fallback to index_vector query for + non-numeric types. + 2009-11-20 Jaroslav Hajek * ov-bool.h (octave_bool::is_numeric_type): New overload. diff -r 6f1ea8241c99 -r 10519b4d6507 src/utils.cc --- a/src/utils.cc Fri Nov 20 08:18:41 2009 +0100 +++ b/src/utils.cc Fri Nov 20 08:19:42 2009 +0100 @@ -1027,10 +1027,18 @@ retval = 1; for (octave_idx_type i = 0; i < len; i++) { - if (idx(i).is_magic_colon ()) + octave_value idxi = idx(i); + if (idxi.is_magic_colon ()) retval *= dv(i); + else if (idxi.is_numeric_type ()) + retval *= idxi.numel (); else - retval *= idx(i).numel (); + { + idx_vector jdx = idxi.index_vector (); + if (error_state) + break; + retval *= jdx.length (dv(i)); + } } }