comparison liboctave/dim-vector.cc @ 14624:edf9ca8a92a8 stable

when redimensioning, always pad dim_vector objects with 1 (bug #33216) * dim-vector.cc (dim_vector::redim): Always pad with 1. * dim-vector.h (dim_vector::redim): Update comment. * Array.cc (Array<T>::assign): Query dimensions for all zeros before redimensioning. * ov-struct.cc: New test.
author John W. Eaton <jwe@octave.org>
date Fri, 11 May 2012 12:33:13 -0400
parents 72c96de7a403
children 460a3c6d8bf1
comparison
equal deleted inserted replaced
14597:6980b0f35df9 14624:edf9ca8a92a8
270 return *this; 270 return *this;
271 else if (n_dims < n) 271 else if (n_dims < n)
272 { 272 {
273 dim_vector retval = alloc (n); 273 dim_vector retval = alloc (n);
274 274
275 int pad = 0;
276 for (int i = 0; i < n_dims; i++) 275 for (int i = 0; i < n_dims; i++)
277 { 276 retval.rep[i] = rep[i];
278 retval.rep[i] = rep[i];
279 if (rep[i] != 0)
280 pad = 1;
281 }
282 277
283 for (int i = n_dims; i < n; i++) 278 for (int i = n_dims; i < n; i++)
284 retval.rep[i] = pad; 279 retval.rep[i] = 1;
285 280
286 return retval; 281 return retval;
287 } 282 }
288 else 283 else
289 { 284 {