Mercurial > octave
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); } }