# 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;
| | |