Mercurial > hg > octave-nkf
diff libinterp/parse-tree/pt-mat.cc @ 16140:797ac81586d1
Modify pt-mat.cc to solve a problem related to vertcat/horzcat overloading.
* pt-mat.cc (tm_row_const::tm_row_const_rep::init): Do not check dimension
consistency when at least one of the elements is an object (this was
preventing horzcat overloading from working properly, see bug #38128).
(tm_const::init): Same thing for vertical concatenation (this was
preventing vertcat overloading from working properly, see bug #38128).
* test/classes/classes.tst: Add tests for the vertical and horizontal
concatenation of objects when neither vertcat() nor horzcat() is
overloaded.
author | Julien Bect <julien.bect@supelec.fr> |
---|---|
date | Tue, 26 Feb 2013 12:06:45 +0100 |
parents | 2fc554ffbc28 |
children | 70f465930546 |
line wrap: on
line diff
--- a/libinterp/parse-tree/pt-mat.cc +++ b/libinterp/parse-tree/pt-mat.cc @@ -402,7 +402,7 @@ first_elem = false; dv = this_elt_dv; } - else if (! dv.hvcat (this_elt_dv, 1)) + else if ((! any_class) && (! dv.hvcat (this_elt_dv, 1))) { eval_error ("horizontal dimensions mismatch", dv, this_elt_dv); break; @@ -644,7 +644,7 @@ dv(1) = this_elt_nc; dv(0) += this_elt_nr; } - else if (! dv.hvcat (this_elt_dv, 0)) + else if ((!any_class) && (!dv.hvcat (this_elt_dv, 0))) { eval_error ("vertical dimensions mismatch", dv, this_elt_dv); return;