# HG changeset patch # User John W. Eaton # Date 1334682802 14400 # Node ID 82449d607d208601911bd8ae810112bd20f362ce # Parent 5bb5fcffa29d0bf1abdb668d471ec0e5f44a74ae correctly fill struct arrays for assignments that cause resizing (bug #33178) * oct-map.cc (octave_map::assign): Pass Matrix fill value to cell array assignment functions. New test. diff -r 5bb5fcffa29d -r 82449d607d20 src/oct-map.cc --- a/src/oct-map.cc Tue Apr 17 11:53:39 2012 -0400 +++ b/src/oct-map.cc Tue Apr 17 13:13:22 2012 -0400 @@ -971,7 +971,7 @@ octave_idx_type nf = nfields (); for (octave_idx_type k = 0; k < nf; k++) - xvals[k].assign (i, rhs.xvals[k]); + xvals[k].assign (i, rhs.xvals[k], Matrix ()); if (nf > 0) dimensions = xvals[0].dims (); @@ -1014,7 +1014,7 @@ octave_idx_type nf = nfields (); for (octave_idx_type k = 0; k < nf; k++) - xvals[k].assign (i, j, rhs.xvals[k]); + xvals[k].assign (i, j, rhs.xvals[k], Matrix ()); if (nf > 0) dimensions = xvals[0].dims (); @@ -1057,7 +1057,7 @@ octave_idx_type nf = nfields (); for (octave_idx_type k = 0; k < nf; k++) - xvals[k].assign (ia, rhs.xvals[k]); + xvals[k].assign (ia, rhs.xvals[k], Matrix ()); if (nf > 0) dimensions = xvals[0].dims (); @@ -1170,6 +1170,13 @@ setfield (k, tmp); } +/* +%!test +%! rhs.b = 1; +%! a(3) = rhs; +%! assert ({a.b}, {[], [], 1}) +*/ + void octave_map::delete_elements (const idx_vector& i) {