Mercurial > hg > octave-lyh
changeset 9985:43a29eeda994
fix idx_vector::loop for masks
author | Jaroslav Hajek <highegg@gmail.com> |
---|---|
date | Tue, 15 Dec 2009 10:01:35 +0100 |
parents | d1cc2e0ddf55 |
children | 672e1b49e01e |
files | liboctave/ChangeLog liboctave/idx-vector.h |
diffstat | 2 files changed, 17 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/liboctave/ChangeLog +++ b/liboctave/ChangeLog @@ -1,3 +1,8 @@ +2009-12-15 Jaroslav Hajek <highegg@gmail.com> + + * idx-vector.h (idx_vector::loop, idx_vector::bloop): Fix behavior for + masks. + 2009-12-13 Rik <octave@nomad.inbox5.com> * Makefile.am: Use DISTCLEANFILES rather than distclean-local rule.
--- a/liboctave/idx-vector.h +++ b/liboctave/idx-vector.h @@ -824,8 +824,8 @@ idx_mask_rep * r = dynamic_cast<idx_mask_rep *> (rep); const bool *data = r->get_data (); octave_idx_type ext = r->extent (0); - for (octave_idx_type i = 0, j = 0; i < ext; i++) - if (data[i]) body (j++); + for (octave_idx_type i = 0; i < ext; i++) + if (data[i]) body (i); } break; default: @@ -894,8 +894,16 @@ const bool *data = r->get_data (); octave_idx_type ext = r->extent (0), j = 0; for (octave_idx_type i = 0; i < ext; i++) - if (data[i] && body (j++)) - break; + { + if (data[i]) + { + if (body (i)) + break; + else + j++; + } + } + ret = j; } break;