diff src/pt-unop.cc @ 3962:e39b0ee1da6c

[project @ 2002-06-27 14:14:08 by jwe]
author jwe
date Thu, 27 Jun 2002 14:14:09 +0000
parents bf6116ca10eb
children edd758a7ca8d
line wrap: on
line diff
--- a/src/pt-unop.cc
+++ b/src/pt-unop.cc
@@ -74,15 +74,20 @@
     {
       if (etype == octave_value::op_incr || etype == octave_value::op_decr)
 	{
-	  octave_lvalue ref = op->lvalue ();
+	  op->rvalue ();
+
+	  if (! error_state)
+	    {
+	      octave_lvalue ref = op->lvalue ();
 
-	  if (error_state)
-	    eval_error ();
-	  else if (ref.is_defined ())
-	    {
-	      ref.do_unary_op (etype);
+	      if (! error_state && ref.is_defined ())
+		{
+		  ref.do_unary_op (etype);
 
-	      retval = ref.value ();
+		  retval = ref.value ();
+		}
+	      else
+		eval_error ();
 	    }
 	  else
 	    eval_error ();
@@ -91,9 +96,7 @@
 	{
 	  octave_value val = op->rvalue ();
 
-	  if (error_state)
-	    eval_error ();
-	  else if (val.is_defined ())
+	  if (! error_state && val.is_defined ())
 	    {
 	      retval = ::do_unary_op (etype, val);
 
@@ -155,15 +158,20 @@
     {
       if (etype == octave_value::op_incr || etype == octave_value::op_decr)
 	{
-	  octave_lvalue ref = op->lvalue ();
+	  op->rvalue ();
+
+	  if (! error_state)
+	    {
+	      octave_lvalue ref = op->lvalue ();
 
-	  if (error_state)
-	    eval_error ();
-	  else if (ref.is_defined ())
-	    {
-	      retval = ref.value ();
+	      if (! error_state && ref.is_defined ())
+		{
+		  retval = ref.value ();
 
-	      ref.do_unary_op (etype);
+		  ref.do_unary_op (etype);
+		}
+	      else
+		eval_error ();
 	    }
 	  else
 	    eval_error ();
@@ -172,9 +180,7 @@
 	{
 	  octave_value val = op->rvalue ();
 
-	  if (error_state)
-	    eval_error ();
-	  else if (val.is_defined ())
+	  if (! error_state && val.is_defined ())
 	    {
 	      retval = ::do_unary_op (etype, val);