diff src/ov-base-mat.cc @ 4858:499d2ca46982

[project @ 2004-04-08 18:00:43 by jwe]
author jwe
date Thu, 08 Apr 2004 18:00:43 +0000
parents 7a3eb3cc292b
children e674c7111b88
line wrap: on
line diff
--- a/src/ov-base-mat.cc
+++ b/src/ov-base-mat.cc
@@ -149,7 +149,8 @@
       {
 	idx_vector i = idx (0).index_vector ();
 
-	retval = MT (matrix.index (i, resize_ok, MT::resize_fill_value ()));
+	if (! error_state)
+	  retval = MT (matrix.index (i, resize_ok, MT::resize_fill_value ()));
       }
       break;
 
@@ -158,20 +159,31 @@
 	if (n_idx == 2 && nd == 2)
 	  {
 	    idx_vector i = idx (0).index_vector ();
-	    idx_vector j = idx (1).index_vector ();
+
+	    if (! error_state)
+	      {
+		idx_vector j = idx (1).index_vector ();
 
-	    retval = MT (matrix.index (i, j, resize_ok,
-				       MT::resize_fill_value ()));
+		if (! error_state)
+		  retval = MT (matrix.index (i, j, resize_ok,
+					     MT::resize_fill_value ()));
+	      }
 	  }
 	else
 	  {
 	    Array<idx_vector> idx_vec (n_idx);
 
 	    for (int i = 0; i < n_idx; i++)
-	      idx_vec(i) = idx(i).index_vector ();
+	      {
+		idx_vec(i) = idx(i).index_vector ();
 
-	    retval = MT (matrix.index (idx_vec, resize_ok,
-				       MT::resize_fill_value ()));
+		if (error_state)
+		  break;
+	      }
+
+	    if (! error_state)
+	      retval = MT (matrix.index (idx_vec, resize_ok,
+					 MT::resize_fill_value ()));
 	  }
       }
       break;