changeset 8298:7e87d3d76a56

fix extent query for empty ranges
author Jaroslav Hajek <highegg@gmail.com>
date Fri, 31 Oct 2008 12:09:16 +0100
parents dc62132651db
children be9b14945774
files liboctave/ChangeLog liboctave/idx-vector.h
diffstat 2 files changed, 9 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/liboctave/ChangeLog	Fri Oct 31 06:36:35 2008 -0400
+++ b/liboctave/ChangeLog	Fri Oct 31 12:09:16 2008 +0100
@@ -1,3 +1,10 @@
+2008-10-31  Jaroslav Hajek  <highegg@gmail.com>
+
+	* idx-vector.h (idx_vector::idx_range_rep::extent): Don't change
+	extent when len is zero.
+	* idx-vector.h (idx_vector::idx_range_rep::idx_range_rep (void)):
+	Create empty range by default.
+
 2008-10-30  Jaroslav Hajek <highegg@gmail.com>
 
 	* oct-inttypes.h (octave_int_abs): New function.
--- a/liboctave/idx-vector.h	Fri Oct 31 06:36:35 2008 -0400
+++ b/liboctave/idx-vector.h	Fri Oct 31 12:09:16 2008 +0100
@@ -152,7 +152,7 @@
       : idx_base_rep (), start(_start), len(_len), step(_step) { }
 
     idx_range_rep (void) 
-      : start(0), len(1), step(1) { }
+      : start(0), len(0), step(1) { }
 
     // Zero-based constructor.
     idx_range_rep (octave_idx_type _start, octave_idx_type _limit,
@@ -169,7 +169,7 @@
       { return len; }
 
     octave_idx_type extent (octave_idx_type n) const
-      { return std::max (n, (start + 1 + (step < 0 ? 0 : step * (len - 1)))); }
+      { return len ? std::max (n, (start + 1 + (step < 0 ? 0 : step * (len - 1)))) : n; }
 
     idx_class_type idx_class () const { return class_range; }