Mercurial > hg > octave-nkf
diff libgui/src/octave-qt-link.cc @ 16419:16bfbf9136d3
avoid creating unnecessary octave_value objects for octave_link calls
* octave-link.h (octave_linke::enter_debugger_event,
octave_linke::exit_debugger_event, octave_linke::update_breakpoint,
octave_linke::do_insert_debugger_pointer,
octave_linke::do_delete_debugger_pointer,
octave_linke::do_enter_debugger_event,
octave_linke::do_exit_debugger_event,
octave_linke::do_update_breakpoint): Pass file and line info as string
and int instead of octave_value_list. Change all callers.
* octave-qt-link.h, octave-qt-link.cc
(octave_qt_link::do_insert_debugger_pointer,
octave_qt_link::do_delete_debugger_pointer,
octave_qt_link::do_enter_debugger_event,
octave_qt_link::do_exit_debugger_event,
octave_qt_link::do_update_breakpoint): Likewise.
* debug.h, debug.cc (location_info): Delete.
* input.cc (exit_debugger_handler): New function.
(get_debug_input): Use it.
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Wed, 03 Apr 2013 21:15:30 -0400 |
parents | 70032fc70bee |
children | 81ec95768520 |
line wrap: on
line diff
--- a/libgui/src/octave-qt-link.cc +++ b/libgui/src/octave-qt-link.cc @@ -65,70 +65,24 @@ } void -octave_qt_link::do_insert_debugger_pointer (const octave_value_list& args) +octave_qt_link::do_insert_debugger_pointer (const std::string& file, int line) { if (event_listener) { - if (args.length () == 1) - { - octave_scalar_map m = args(0).scalar_map_value (); - - if (! error_state) - { - octave_value ov_file = m.getfield ("file"); - octave_value ov_line = m.getfield ("line"); - - std::string file = ov_file.string_value (); - int line = ov_line.int_value (); + event_listener->insert_debugger_pointer (file, line); - if (! error_state) - { - event_listener->insert_debugger_pointer (file, line); - - do_process_events (); - } - else - ::error ("invalid struct in debug pointer callback"); - } - else - ::error ("expecting struct in debug pointer callback"); - } - else - ::error ("invalid call to debug pointer callback"); + do_process_events (); } } void -octave_qt_link::do_delete_debugger_pointer (const octave_value_list& args) +octave_qt_link::do_delete_debugger_pointer (const std::string& file, int line) { if (event_listener) { - if (args.length () == 1) - { - octave_scalar_map m = args(0).scalar_map_value (); - - if (! error_state) - { - octave_value ov_file = m.getfield ("file"); - octave_value ov_line = m.getfield ("line"); - - std::string file = ov_file.string_value (); - int line = ov_line.int_value (); + event_listener->delete_debugger_pointer (file, line); - if (! error_state) - { - event_listener->delete_debugger_pointer (file, line); - - do_process_events (); - } - else - ::error ("invalid struct in debug pointer callback"); - } - else - ::error ("expecting struct in debug pointer callback"); - } - else - ::error ("invalid call to debug pointer callback"); + do_process_events (); } } @@ -145,49 +99,26 @@ } void -octave_qt_link::do_enter_debugger_event (const octave_value_list& args) +octave_qt_link::do_enter_debugger_event (const std::string& file, int line) { - do_insert_debugger_pointer (args); + do_insert_debugger_pointer (file, line); } void -octave_qt_link::do_exit_debugger_event (const octave_value_list& args) +octave_qt_link::do_exit_debugger_event (const std::string& file, int line) { - do_delete_debugger_pointer (args); + do_delete_debugger_pointer (file, line); } void octave_qt_link::do_update_breakpoint (bool insert, - const octave_value_list& args) + const std::string& file, int line) { if (event_listener) { - if (args.length () == 1) - { - octave_scalar_map m = args(0).scalar_map_value (); - - if (! error_state) - { - octave_value ov_file = m.getfield ("file"); - octave_value ov_line = m.getfield ("line"); - - std::string file = ov_file.string_value (); - int line = ov_line.int_value (); + event_listener->update_dbstop_marker (insert, file, line); - if (! error_state) - { - event_listener->update_dbstop_marker (insert, file, line); - - do_process_events (); - } - else - ::error ("invalid struct in dbstop marker callback"); - } - else - ::error ("expecting struct in dbstop marker callback"); - } - else - ::error ("invalid call to dbstop marker callback"); + do_process_events (); } }