Mercurial > octave
diff liboctave/array/Sparse.cc @ 32045:f18da620ab4d stable
Fix floating point exception when Sparse array reshaped to 0x0 (bug #64080)
* Sparse.cc (reshape): Test for empty matrix (number of rows or columns equal
to 0) and immediately return constructed, but unfilled, empty sparse matrix.
* data.cc (Freshape): Add BIST test for bug #64080.
author | Rik <rik@octave.org> |
---|---|
date | Thu, 20 Apr 2023 18:58:57 -0700 |
parents | 597f3ee61a48 |
children | 39700c1ea93e |
line wrap: on
line diff
--- a/liboctave/array/Sparse.cc Tue Apr 18 11:09:17 2023 -0700 +++ b/liboctave/array/Sparse.cc Thu Apr 20 18:58:57 2023 -0700 @@ -873,6 +873,9 @@ octave_idx_type old_nr = rows (); octave_idx_type old_nc = cols (); retval = Sparse<T, Alloc> (new_nr, new_nc, new_nnz); + // Special case for empty matrices (bug #64080) + if (new_nr == 0 || new_nc == 0) + return retval; octave_idx_type kk = 0; retval.xcidx (0) = 0;