Mercurial > octave
diff libinterp/octave-value/ov-cell.cc @ 31262:b8f4ec18e728
Allow cell input to cell() function (bug #63132)
* ov-cell.cc (Fcell): Check if single input is already a cell and return it
immediately if it is.
author | Rik <rik@octave.org> |
---|---|
date | Wed, 05 Oct 2022 12:03:52 -0700 |
parents | b3ca7f891750 |
children | e88a07dec498 |
line wrap: on
line diff
--- a/libinterp/octave-value/ov-cell.cc Wed Oct 05 11:53:05 2022 -0700 +++ b/libinterp/octave-value/ov-cell.cc Wed Oct 05 12:03:52 2022 -0700 @@ -1261,7 +1261,10 @@ break; case 1: - get_dimensions (args(0), "cell", dims); + if (args(0).iscell ()) + return args(0); // shortcut path for input which is already a Cell + else + get_dimensions (args(0), "cell", dims); break; default: @@ -1283,6 +1286,15 @@ } /* + +%!test <*63132> +%! x = {1, 3}; +%! y = cell (x); +%! assert (x, y); +%! x = cell (0, 3); +%! y = cell (x); +%! assert (x, y); + ## This might work on some system someday, but for now, who has a system ## where a 16 yottabyte array can be allocated? See bug #50934. %!error <out of memory> cell (1e24, 1)