Mercurial > hg > octave-thorsten
comparison liboctave/dim-vector.cc @ 14629: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 | 14629: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 { |