changeset 6990:9dc99ab00c86

[project @ 2007-10-09 20:39:54 by dbateman]
author dbateman
date Tue, 09 Oct 2007 20:39:55 +0000
parents 2d326000e09b
children f20010b5dcf0
files liboctave/Array2.h liboctave/ChangeLog
diffstat 2 files changed, 16 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/liboctave/Array2.h	Tue Oct 09 20:32:43 2007 +0000
+++ b/liboctave/Array2.h	Tue Oct 09 20:39:55 2007 +0000
@@ -56,10 +56,19 @@
   Array2 (octave_idx_type r, octave_idx_type c, const T& val)
     : Array<T> (dim_vector (r, c), val) { }
 
-  Array2 (const dim_vector& dv) : Array<T> (dv) { }
+  Array2 (const dim_vector& dv) : Array<T> (dv) 
+    { 
+      if (dv.length () != 2)
+	(*current_liboctave_error_handler) ("too many dimensions");
+    }
 
-  Array2 (const dim_vector& dv, const T& val) 
-    : Array<T> (dv) { Array<T>::fill (val); }
+  Array2 (const dim_vector& dv, const T& val) : Array<T> (dv) 
+    { 
+      if (dv.length () != 2)
+	(*current_liboctave_error_handler) ("too many dimensions");
+      else
+	Array<T>::fill (val); 
+    }
 
   Array2 (const Array2<T>& a) : Array<T> (a, a.dims ()) { }
 
--- a/liboctave/ChangeLog	Tue Oct 09 20:32:43 2007 +0000
+++ b/liboctave/ChangeLog	Tue Oct 09 20:39:55 2007 +0000
@@ -5,6 +5,10 @@
 
 2007-10-09  David Bateman  <dbateman@free.fr>
 
+	* Array2.h (Array2<T>::Array2(const dim_vector&),
+	Array2<T>::Array(const dim_vector&, const T&)): Check that
+	dim_vector is 2 dimensional.
+
 	* Sparse.cc (Sparse<T> Sparse<T>::index (idx_vector&, idx_vector&,
 	int)): Remove a for loop in the random indexing case at the
 	expense of maintaining a set of linked lists of indices that point