diff libinterp/dldfcn/__eigs__.cc @ 20743:b6408331bfa2

eliminate more uses of error_state * graphics.cc, input.cc, max.cc, rand.cc, __eigs__.cc, ov-class.cc, ov-classdef.cc, ov.cc, octave.cc: Eliminate more uses of error_state.
author John W. Eaton <jwe@octave.org>
date Mon, 23 Nov 2015 23:23:57 -0500
parents 85e5efae848a
children 200ae1d650b7
line wrap: on
line diff
--- a/libinterp/dldfcn/__eigs__.cc	Mon Nov 23 21:00:14 2015 -0500
+++ b/libinterp/dldfcn/__eigs__.cc	Mon Nov 23 23:23:57 2015 -0500
@@ -56,13 +56,15 @@
 
   if (eigs_fcn)
     {
-      octave_value_list tmp = eigs_fcn->do_multi_index_op (1, args);
+      octave_value_list tmp;
 
-      if (error_state)
+      try
         {
-          eigs_error = 1;
+          tmp = eigs_fcn->do_multi_index_op (1, args);
+        }
+      catch (const octave_execution_exception&)
+        {
           gripe_user_supplied_eval ("eigs");
-          return retval;
         }
 
       if (tmp.length () && tmp(0).is_defined ())
@@ -73,13 +75,7 @@
               warned_imaginary = true;
             }
 
-          retval = ColumnVector (tmp(0).vector_value ());
-
-          if (error_state)
-            {
-              eigs_error = 1;
-              gripe_user_supplied_eval ("eigs");
-            }
+          retval = tmp(0).xvector_value ("eigs: evaluation of user-supplied function failed");
         }
       else
         {
@@ -100,24 +96,20 @@
 
   if (eigs_fcn)
     {
-      octave_value_list tmp = eigs_fcn->do_multi_index_op (1, args);
+      octave_value_list tmp;
 
-      if (error_state)
+      try
         {
-          eigs_error = 1;
+          tmp = eigs_fcn->do_multi_index_op (1, args);
+        }
+      catch (const octave_execution_exception&)
+        {
           gripe_user_supplied_eval ("eigs");
-          return retval;
         }
 
       if (tmp.length () && tmp(0).is_defined ())
         {
-          retval = ComplexColumnVector (tmp(0).complex_vector_value ());
-
-          if (error_state)
-            {
-              eigs_error = 1;
-              gripe_user_supplied_eval ("eigs");
-            }
+          retval = tmp(0).complex_vector_value ("eigs: evaluation of user-supplied function failed");
         }
       else
         {