# HG changeset patch # User jwe # Date 1076011137 0 # Node ID 65f30438c2a3ea52edd88b103d1221a431c2d113 # Parent 7bd3748e2735980fbbcaa1b9425856e5e987d2f2 [project @ 2004-02-05 19:58:57 by jwe] diff -r 7bd3748e2735 -r 65f30438c2a3 liboctave/Array.cc --- a/liboctave/Array.cc Thu Feb 05 18:53:18 2004 +0000 +++ b/liboctave/Array.cc Thu Feb 05 19:58:57 2004 +0000 @@ -1413,11 +1413,9 @@ dim_vector lhs_dims = dims (); - dim_vector idx_is_colon; - idx_is_colon.resize (n_idx); - - dim_vector idx_is_colon_equiv; - idx_is_colon_equiv.resize (n_idx); + Array idx_is_colon (n_idx, 0); + + Array idx_is_colon_equiv (n_idx, 0); // Initialization of colon arrays. @@ -2710,15 +2708,13 @@ dim_vector new_dims; new_dims.resize (lhs_dims.length ()); - for (int i = 0; i < lhs_dims.length (); i++) - { - if (i < idx.length () - 1 - && idx(i).elem (0) + 1 > lhs_dims(i)) - new_dims(i) = idx(i).elem (0)+1; - else - new_dims(i) = lhs_dims(i); - } - + for (int i = 0; i < idx.length () - 1; i++) + new_dims(i) = idx(i).elem (0) >= lhs_dims(i) + ? idx(i).elem (0) + 1 : lhs_dims (i); + + for (int i = idx.length (); i < lhs_dims.length (); i++) + new_dims(i) = lhs_dims (i); + lhs.resize (new_dims, rfv); lhs_dims = lhs.dims (); diff -r 7bd3748e2735 -r 65f30438c2a3 liboctave/ChangeLog --- a/liboctave/ChangeLog Thu Feb 05 18:53:18 2004 +0000 +++ b/liboctave/ChangeLog Thu Feb 05 19:58:57 2004 +0000 @@ -1,5 +1,10 @@ 2004-02-05 Petter Risholm + * Array.cc (Array::maybe_delete_elements): Declare idx_is_colon + and idx_is_colon_equiv Array instead of dim_vector. + + * Array.cc (Array::assignN): Compute new dims in a cleaner way. + * Array.cc (Array::index): Check for frozen_lengths.length () == n_dims before checking to see if all indices are colon_equiv.