diff liboctave/Array.cc @ 9507:b096d11237be

dim_vector improvements
author Jaroslav Hajek <highegg@gmail.com>
date Fri, 07 Aug 2009 08:21:39 +0200
parents 9fd5c56ce57a
children 1beb23d2b892
line wrap: on
line diff
--- a/liboctave/Array.cc
+++ b/liboctave/Array.cc
@@ -586,7 +586,6 @@
   Array<octave_idx_type> perm_vec = perm_vec_arg;
 
   dim_vector dv = dims ();
-  dim_vector dv_new;
 
   int perm_vec_len = perm_vec_arg.length ();
 
@@ -594,7 +593,7 @@
     (*current_liboctave_error_handler)
       ("%s: invalid permutation vector", inv ? "ipermute" : "permute");
 
-  dv_new.resize (perm_vec_len);
+  dim_vector dv_new = dim_vector::alloc (perm_vec_len);
 
   // Append singleton dimensions as needed.
   dv.resize (perm_vec_len, 1);
@@ -989,8 +988,7 @@
       else 
         {
           // Form result dimensions.
-          dim_vector rdv;
-          rdv.resize (ial);
+          dim_vector rdv = dim_vector::alloc (ial);
           for (int i = 0; i < ial; i++) rdv(i) = ia(i).length (dv(i));
           rdv.chop_trailing_singletons ();
 
@@ -1232,7 +1230,7 @@
     {
       int ial = ia.length ();
       dim_vector dv = dimensions.redim (ial);
-      dim_vector dvx; dvx.resize (ial);
+      dim_vector dvx = dim_vector::alloc (ial);
       for (int i = 0; i < ial; i++) dvx(i) = ia(i).extent (dv (i));
       if (! (dvx == dv))
         {
@@ -1437,7 +1435,7 @@
         rdv = zero_dims_inquire (ia, rhdv);
       else
         {
-          rdv.resize (ial);
+          rdv = dim_vector::alloc (ial);
           for (int i = 0; i < ial; i++)
             rdv(i) = ia(i).extent (dv(i));
         }