diff liboctave/idx-vector.cc @ 10620:6fb954475e21

fix off-by-1 error in idx_vector (bug #29851)
author Jaroslav Hajek <highegg@gmail.com>
date Tue, 11 May 2010 07:25:20 +0200
parents f0266ee4aabe
children c49911ab7ac7
line wrap: on
line diff
--- a/liboctave/idx-vector.cc	Fri May 07 12:40:06 2010 +0200
+++ b/liboctave/idx-vector.cc	Tue May 11 07:25:20 2010 +0200
@@ -1202,7 +1202,7 @@
         if (data[i]) 
           idata[j++] = i;
 
-      ext = len > 0 ? idata[len - 1] : 0;
+      ext = len > 0 ? idata[len - 1] + 1 : 0;
 
       return new idx_vector_rep (idata, len, ext, r->orig_dimensions (),
                                  DIRECT);
@@ -1313,3 +1313,10 @@
 INSTANTIATE_SCALAR_VECTOR_REP_CONST (octave_uint16)
 INSTANTIATE_SCALAR_VECTOR_REP_CONST (octave_uint32)
 INSTANTIATE_SCALAR_VECTOR_REP_CONST (octave_uint64)
+
+/*
+
+%!error id=Octave:index-out-of-bounds 1(find([1,1] != 0))
+%!assert ((1:3)(find([1,0,1] != 0)), [1,3])
+
+*/