diff libinterp/parse-tree/bp-table.cc @ 25360:bc5f225bc578

eliminate some global accesses to the breakpoint table * pt-eval.h, pt-eval.cc (tree_evaluator::m_bp_table): Store breakpoint table in evaluator, not interpreter. Change all uses. (tree_evaluator::get_user_code): Move here from interpreter. (tree_evaluator::m_dbstep_flag, tree_evaluator::m_in_loop_command): Now a member variables instead of static. Change all uses. (tree_evaluator::reset_debug_state): Now a member function instead of static. Change all uses. New overload that accepts mode directly. (tree_evaluator::final_index_error): Now a member function instead of static. Change all uses. * bp-table.h, bp-table.cc (bp_table::m_evaluator): Store reference to the evaluator in bp_table instead of a reference to the interpreter. Change all uses. * debug.cc (Fdbstep, Fdbcont, Fdbquit): Define with DEFMETHOD. * octave-cmd.h, octave-cmd.cc (octave_cmd_exec::execute, octave_cmd_eval::execute, octave_cmd_debug::execute): Accept reference to interpreter as argument. (octave_command_queue::execute_command_callback): Pass interpreter to execute functions.
author John W. Eaton <jwe@octave.org>
date Tue, 08 May 2018 11:53:34 -0400
parents af3319d86a5f
children ef2b9d4abf4a
line wrap: on
line diff
--- a/libinterp/parse-tree/bp-table.cc	Fri May 04 16:18:30 2018 -0400
+++ b/libinterp/parse-tree/bp-table.cc	Tue May 08 11:53:34 2018 -0400
@@ -341,8 +341,7 @@
               {
                 // It was a line number.  Get function name from debugger.
                 if (Vdebugging)
-                  symbol_name
-                    = m_interpreter.get_user_code ()->profiler_name ();
+                  symbol_name = m_evaluator.get_user_code ()->profiler_name ();
                 else
                   error ("%s: function name must come before line number "
                          "and 'if'", who);
@@ -561,7 +560,7 @@
                                              const bp_table::intmap& line,
                                              const std::string& condition)
   {
-    octave_user_code *main_fcn = m_interpreter.get_user_code (fname);
+    octave_user_code *main_fcn = m_evaluator.get_user_code (fname);
 
     if (! main_fcn)
       error ("add_breakpoint: unable to find function '%s'\n", fname.c_str ());
@@ -659,7 +658,7 @@
       }
     else
       {
-        octave_user_code *dbg_fcn = m_interpreter.get_user_code (fname);
+        octave_user_code *dbg_fcn = m_evaluator.get_user_code (fname);
 
         if (! dbg_fcn)
           error ("remove_breakpoint: unable to find function %s\n",
@@ -701,7 +700,7 @@
   {
     intmap retval;
 
-    octave_user_code *dbg_fcn = m_interpreter.get_user_code (fname);
+    octave_user_code *dbg_fcn = m_evaluator.get_user_code (fname);
 
     if (dbg_fcn)
       {
@@ -771,7 +770,7 @@
         if (fname_list.empty ()
             || find_bkpt_list (fname_list, bp_fname) != "")
           {
-            octave_user_code *dbg_fcn = m_interpreter.get_user_code (bp_fname);
+            octave_user_code *dbg_fcn = m_evaluator.get_user_code (bp_fname);
 
             if (dbg_fcn)
               {
@@ -934,8 +933,8 @@
   octave_user_code *
   get_user_code (const std::string& fname)
   {
-    interpreter& interp = __get_interpreter__ ("get_user_code");
+    tree_evaluator& tw = __get_evaluator__ ("get_user_code");
 
-    return interp.get_user_code (fname);
+    return tw.get_user_code (fname);
   }
 }