# HG changeset patch # User Jaroslav Hajek # Date 1222080718 -7200 # Node ID 0feae0f0c49bf4a40f735943c91c53e1072a6767 # Parent bad72b83e99ecf2253a3a9439d92affa73028477 add missing null matrix checks diff --git a/src/ov-cell.cc b/src/ov-cell.cc --- a/src/ov-cell.cc +++ b/src/ov-cell.cc @@ -267,7 +267,7 @@ octave_base_matrix::assign (i, tmp_cell); } else - octave_base_matrix::assign (i, Cell (t_rhs)); + octave_base_matrix::assign (i, Cell (t_rhs.non_null_matrix_value ())); if (! error_state) { diff --git a/src/ov-struct.cc b/src/ov-struct.cc --- a/src/ov-struct.cc +++ b/src/ov-struct.cc @@ -385,7 +385,7 @@ map.assign (key, tmp_cell); } else - map.assign (key, t_rhs); + map.assign (key, t_rhs.non_null_matrix_value ()); if (! error_state) { diff --git a/src/ov.cc b/src/ov.cc --- a/src/ov.cc +++ b/src/ov.cc @@ -1165,7 +1165,7 @@ // // will not. - operator = (rhs.is_null_matrix () ? octave_value (Matrix ()) : rhs); + operator = (rhs.non_null_matrix_value ()); } else { @@ -1307,6 +1307,12 @@ octave_value::list_value (void) const { return rep->list_value (); +} + +octave_value +octave_value::non_null_matrix_value (void) const +{ + return is_null_matrix () ? octave_value (Matrix ()) : *this; } static dim_vector diff --git a/src/ov.h b/src/ov.h --- a/src/ov.h +++ b/src/ov.h @@ -790,6 +790,8 @@ octave_value_list list_value (void) const; + octave_value non_null_matrix_value (void) const; + ColumnVector column_vector_value (bool frc_str_conv = false, bool frc_vec_conv = false) const;