diff libinterp/corefcn/variables.cc @ 20588:4bed806ee3d4

eliminate more simple uses of error_state * daspk.cc, dassl.cc, dot.cc, luinc.cc, sylvester.cc, variables.cc, __eigs__.cc: Eliminate simple uses of error_state.
author John W. Eaton <jwe@octave.org>
date Mon, 05 Oct 2015 20:21:55 -0400
parents b70cc4bd8109
children fd0efcdb3718
line wrap: on
line diff
--- a/libinterp/corefcn/variables.cc	Mon Oct 05 19:29:36 2015 -0400
+++ b/libinterp/corefcn/variables.cc	Mon Oct 05 20:21:55 2015 -0400
@@ -267,8 +267,6 @@
 
           unwind_protect frame;
 
-          frame.protect_var (error_state);
-
           frame.protect_var (discard_error_messages);
           frame.protect_var (discard_warning_messages);
 
@@ -309,7 +307,6 @@
       unwind_protect frame;
 
       frame.protect_var (discard_error_messages);
-      frame.protect_var (error_state);
 
       discard_error_messages = true;
 
@@ -1696,13 +1693,10 @@
 
               feval ("load", octave_value (nm), 0);
 
-              if (! error_state)
-                {
-                  std::string newmsg = std::string ("Variables in the file ") +
-                                       nm + ":\n\n";
-
-                  retval =  do_who (i, argv, return_list, verbose, newmsg);
-                }
+              std::string newmsg = std::string ("Variables in the file ")
+                + nm + ":\n\n";
+
+              retval =  do_who (i, argv, return_list, verbose, newmsg);
             }
 
           return retval;
@@ -1786,10 +1780,7 @@
                           octave_value expr_val
                             = eval_string (pat, true, parse_status);
 
-                          if (! error_state)
-                            symbol_stats.append (sr, pat, expr_val);
-                          else
-                            return retval;
+                          symbol_stats.append (sr, pat, expr_val);
                         }
                     }
                 }
@@ -1897,8 +1888,7 @@
 
       string_vector argv = args.make_argv ("who");
 
-      if (! error_state)
-        retval = do_who (argc, argv, nargout == 1);
+      retval = do_who (argc, argv, nargout == 1);
     }
   else
     print_usage ();
@@ -1978,8 +1968,7 @@
 
       string_vector argv = args.make_argv ("whos");
 
-      if (! error_state)
-        retval = do_who (argc, argv, nargout == 1, true);
+      retval = do_who (argc, argv, nargout == 1, true);
     }
   else
     print_usage ();
@@ -2468,129 +2457,126 @@
 
   string_vector argv = args.make_argv ("clear");
 
-  if (! error_state)
+  if (argc == 1)
+    {
+      do_clear_globals (argv, argc, true);
+      do_clear_variables (argv, argc, true);
+
+      octave_link::clear_workspace ();
+    }
+  else
     {
-      if (argc == 1)
-        {
-          do_clear_globals (argv, argc, true);
-          do_clear_variables (argv, argc, true);
-
-          octave_link::clear_workspace ();
-        }
-      else
+      int idx = 0;
+
+      bool clear_all = false;
+      bool clear_functions = false;
+      bool clear_globals = false;
+      bool clear_variables = false;
+      bool clear_objects = false;
+      bool exclusive = false;
+      bool have_regexp = false;
+      bool have_dash_option = false;
+
+      while (++idx < argc)
         {
-          int idx = 0;
-
-          bool clear_all = false;
-          bool clear_functions = false;
-          bool clear_globals = false;
-          bool clear_variables = false;
-          bool clear_objects = false;
-          bool exclusive = false;
-          bool have_regexp = false;
-          bool have_dash_option = false;
-
-          while (++idx < argc)
+          if (argv[idx] == "-all" || argv[idx] == "-a")
+            {
+              CLEAR_OPTION_ERROR (have_dash_option && ! exclusive);
+
+              have_dash_option = true;
+              clear_all = true;
+            }
+          else if (argv[idx] == "-exclusive" || argv[idx] == "-x")
+            {
+              have_dash_option = true;
+              exclusive = true;
+            }
+          else if (argv[idx] == "-functions" || argv[idx] == "-f")
+            {
+              CLEAR_OPTION_ERROR (have_dash_option && ! exclusive);
+
+              have_dash_option = true;
+              clear_functions = true;
+            }
+          else if (argv[idx] == "-global" || argv[idx] == "-g")
+            {
+              CLEAR_OPTION_ERROR (have_dash_option && ! exclusive);
+
+              have_dash_option = true;
+              clear_globals = true;
+            }
+          else if (argv[idx] == "-variables" || argv[idx] == "-v")
             {
-              if (argv[idx] == "-all" || argv[idx] == "-a")
-                {
-                  CLEAR_OPTION_ERROR (have_dash_option && ! exclusive);
-
-                  have_dash_option = true;
-                  clear_all = true;
-                }
-              else if (argv[idx] == "-exclusive" || argv[idx] == "-x")
-                {
-                  have_dash_option = true;
-                  exclusive = true;
-                }
-              else if (argv[idx] == "-functions" || argv[idx] == "-f")
+              CLEAR_OPTION_ERROR (have_dash_option && ! exclusive);
+
+              have_dash_option = true;
+              clear_variables = true;
+            }
+          else if (argv[idx] == "-classes" || argv[idx] == "-c")
+            {
+              CLEAR_OPTION_ERROR (have_dash_option && ! exclusive);
+
+              have_dash_option = true;
+              clear_objects = true;
+            }
+          else if (argv[idx] == "-regexp" || argv[idx] == "-r")
+            {
+              CLEAR_OPTION_ERROR (have_dash_option && ! exclusive);
+
+              have_dash_option = true;
+              have_regexp = true;
+            }
+          else
+            break;
+        }
+
+      if (idx <= argc)
+        {
+          if (! have_dash_option)
+            {
+              do_matlab_compatible_clear (argv, argc, idx);
+            }
+          else
+            {
+              if (clear_all)
                 {
-                  CLEAR_OPTION_ERROR (have_dash_option && ! exclusive);
-
-                  have_dash_option = true;
-                  clear_functions = true;
+                  maybe_warn_exclusive (exclusive);
+
+                  if (++idx < argc)
+                    warning
+                      ("clear: ignoring extra arguments after -all");
+
+                  symbol_table::clear_all ();
                 }
-              else if (argv[idx] == "-global" || argv[idx] == "-g")
+              else if (have_regexp)
                 {
-                  CLEAR_OPTION_ERROR (have_dash_option && ! exclusive);
-
-                  have_dash_option = true;
-                  clear_globals = true;
+                  do_clear_variables (argv, argc, idx, exclusive, true);
                 }
-              else if (argv[idx] == "-variables" || argv[idx] == "-v")
-                {
-                  CLEAR_OPTION_ERROR (have_dash_option && ! exclusive);
-
-                  have_dash_option = true;
-                  clear_variables = true;
-                }
-              else if (argv[idx] == "-classes" || argv[idx] == "-c")
+              else if (clear_functions)
                 {
-                  CLEAR_OPTION_ERROR (have_dash_option && ! exclusive);
-
-                  have_dash_option = true;
-                  clear_objects = true;
+                  do_clear_functions (argv, argc, idx, exclusive);
                 }
-              else if (argv[idx] == "-regexp" || argv[idx] == "-r")
+              else if (clear_globals)
+                {
+                  do_clear_globals (argv, argc, idx, exclusive);
+                }
+              else if (clear_variables)
                 {
-                  CLEAR_OPTION_ERROR (have_dash_option && ! exclusive);
-
-                  have_dash_option = true;
-                  have_regexp = true;
+                  do_clear_variables (argv, argc, idx, exclusive);
                 }
-              else
-                break;
-            }
-
-          if (idx <= argc)
-            {
-              if (! have_dash_option)
+              else if (clear_objects)
                 {
-                  do_matlab_compatible_clear (argv, argc, idx);
+                  symbol_table::clear_objects ();
+                  octave_class::clear_exemplar_map ();
+                  symbol_table::clear_all ();
                 }
               else
                 {
-                  if (clear_all)
-                    {
-                      maybe_warn_exclusive (exclusive);
-
-                      if (++idx < argc)
-                        warning
-                          ("clear: ignoring extra arguments after -all");
-
-                      symbol_table::clear_all ();
-                    }
-                  else if (have_regexp)
-                    {
-                      do_clear_variables (argv, argc, idx, exclusive, true);
-                    }
-                  else if (clear_functions)
-                    {
-                      do_clear_functions (argv, argc, idx, exclusive);
-                    }
-                  else if (clear_globals)
-                    {
-                      do_clear_globals (argv, argc, idx, exclusive);
-                    }
-                  else if (clear_variables)
-                    {
-                      do_clear_variables (argv, argc, idx, exclusive);
-                    }
-                  else if (clear_objects)
-                    {
-                      symbol_table::clear_objects ();
-                      octave_class::clear_exemplar_map ();
-                      symbol_table::clear_all ();
-                    }
-                  else
-                    {
-                      do_clear_symbols (argv, argc, idx, exclusive);
-                    }
+                  do_clear_symbols (argv, argc, idx, exclusive);
                 }
-
-              octave_link::set_workspace ();
             }
+
+          octave_link::set_workspace ();
         }
     }