changeset 4846:7a3eb3cc292b

[project @ 2004-04-02 20:52:12 by jwe]
author jwe
date Fri, 02 Apr 2004 20:52:12 +0000
parents a9cfb8b37759
children 83ddfedb8db7
files src/ChangeLog src/ov-base-mat.cc src/pt-decl.cc
diffstat 3 files changed, 11 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/src/ChangeLog	Fri Apr 02 20:12:24 2004 +0000
+++ b/src/ChangeLog	Fri Apr 02 20:52:12 2004 +0000
@@ -1,5 +1,8 @@
 2004-04-02  John W. Eaton  <jwe@bevo.che.wisc.edu>
 
+	* ov-base-mat.cc (octave_base_matrix<MT>::subsasgn): Don't allow
+	expressions like x(i)(j) or x(i){j} when x is empty.
+
 	* load-save.cc (get_file_format): Error if file does not exist.
 	(Fload): Also complain here if specific file type is specified and
 	file does not exist.
--- a/src/ov-base-mat.cc	Fri Apr 02 20:12:24 2004 +0000
+++ b/src/ov-base-mat.cc	Fri Apr 02 20:52:12 2004 +0000
@@ -86,9 +86,14 @@
 	    //
 	    //  x = []; x(i).f = rhs
 
-	    octave_value tmp = octave_value::empty_conv (type, rhs);
+	    if (type[1] == '.')
+	      {
+		octave_value tmp = octave_value::empty_conv (type, rhs);
 
-	    retval = tmp.subsasgn (type, idx, rhs);
+		retval = tmp.subsasgn (type, idx, rhs);
+	      }
+	    else
+	      error ("invalid assignment expression");
 	  }
 	else
 	  {
--- a/src/pt-decl.cc	Fri Apr 02 20:12:24 2004 +0000
+++ b/src/pt-decl.cc	Fri Apr 02 20:52:12 2004 +0000
@@ -149,7 +149,7 @@
 
       octave_lvalue ult = id->lvalue ();
 
-      if (ult.is_defined ())
+      if (ult.is_undefined ())
 	{
 	  tree_expression *expr = elt.expression ();